إنشاء قائمة إختيار ListBox عبر مكتبة swing بإستخدام الكلاس JList في لغة جافا JAVA الدرس|36| - Programmer Tech

Programmer Tech

تعلم البرمجة - علوم الكمبيوتر - أمن المعلومات - القرصنة الأخلاقية

إعلان اعلى المقالة

الثلاثاء، 9 فبراير 2021

إنشاء قائمة إختيار ListBox عبر مكتبة swing بإستخدام الكلاس JList في لغة جافا JAVA الدرس|36|


إنشاء قائمة إختيار نوع ListBox

في هذا الدرس البسيط سوف نتحدث عن ListBox و في الدرس السابق تحدثنا عن ComboBox, و ListBox هو شبيه جداً بـ ComboBox, تستطيع الإختيار منه يعني هو قائمة إختيار غير أن الفرق بين ListBox و ComboBox هو أن ComboBox لا تسطيع مشاهدة العناصر إلا عند الضغط على الـ ComboBox لكن في ListBox تظهر العناصر أمامنا مباشرتاً دون الضغط عليها.

لإنشاء ListBox لا بُد أن نَمُّر بمرحلتين و المرحلة الأولى هي تعريف العناصر التي ستظهر في ListBox و المرحلة الثانية هي إنشاء ListBox ثم إضافة العناصر إليها.

package l1
import javax.swing.*;
public class L1{

     public static void main(String []args){
        JFrame f=new JFrame("ليست بوكس");
        DefaultListModel<String>l1=new DefaultListModel<>();
        l1.addElement("Saja");
        l1.addElement("Kaissat");
        l1.addElement("Data");
        l1.addElement("Wazer");
        l1.addElement("Parrot");
        JList<String>list=new JList<>(l1);
        list.setBounds(200, 100, 100, 200);
        f.add(list);
        f.setSize(400, 400);
        f.setLayout(null);
        f.setVisible(true);
     }
}


شرح المثال السابق

في البداية قمنا بإستدعاء مكتبة swing كالعادة و هي المكتبة الخاصة بالواجهات ثم بدأنا بتضمين كلاس إسم الواجهة f=new و بعد ذلك قمنا بتعريف الليست بوكس عن طريق الحزمة DefaultListModel و إخترناها من نوع String أي أن العناصر سوف تكون نوعها نصي ثم اعطيناه الكائن بإسم l1 ثم قمنا بإضافة العناصر أي إنشاء العناصر عبر الدالة addElement و أضفنا خمس عناصر للستة ثم بعد ذلك أنشأنا الليست عن طريق الكلاس JList ثم قمنا بتحديد الإحداثيات عبر list.setBounds ثم أضفنا العناصر الذي قمنا بتعريفها إلى الليست عبر f.add و حددنا عرض و طول الواجهة 400*400 ثم قمنا بملائمة العناصر مع الواجهة عبر setLayout و أظهرنا الواجهة و العناصر عبر setVisible , و عند تشغيل هذا الكود سوف تكون النتيجه كما بالصورة الآتية.

كما نلاحظ أنه تم إنشاء الليستة و إظهار كافة البيانات الذي بداخلها أمامنا, يمكن الإختيار أي من اللسته بالنقر عليه.
 

الحصول على قيمة بواسطة الحدث addActionListener

سنتعرف هنا على كيفية إضافة حدث على ListBox بغرض إستخلاص قيمة من ListBox ثم إظهارها على النموذج, تحدَّثنا ببداية دروس الواجهات كلما نقوم بإنشاء عنصر مثل الزر أو الليبل او ComboBox نقوم بإنشاء حَدَث لهذا العنصر, الأحداث مهمة لا بد أن نتعلم كيفية إنشاء الأحداث لكل عنصر حتى نستطيع معالجة القيم داخل العنصر أو الحصول على قيمة داخل العنصر, سنتعلم حالياً عند إختيار قيمة من ListBox ثم الضغط على الزر سوف تظهر القيمة التي إخترتها من ListBox على النموذج.

package listbox;
import javax.swing.*;
import java.awt.event.*;

public class Listbox{
    String dat=" ";
    Listbox()
    {
        JFrame f=new JFrame();
        final JLabel label=new JLabel();
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setSize(400, 100);
        JButton b=new JButton("show");
        b.setBounds(200, 150, 80, 30);
        DefaultListModel<String> l1=new DefaultListModel<>();
        l1.addElement("Kaissar");
        l1.addElement("Saja");
        l1.addElement("Parrot");
        l1.addElement("Wazer");
        JList list=new JList<>(l1);
        list.setBounds(100, 100, 150, 150);
        f.add(b);
        f.add(list);
        f.add(label);
        f.setSize(500,500);
        f.setLayout(null);
        f.setVisible(true);
        b.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
                dat=" " + list.getSelectedValue();
                label.setText(dat);
            }
        });
    }

     public static void main(String []args){
        new Listbox();
     }
}


شرح المثال السابق

في البداية قمنا بإستدعاء مكتبة swing و إستدعاء المكتبة الخاصة بالاحداث awt.event, و أنشأنا متغير dat لإستقبال قيمة نصية, ثم بدأنا بإنشاء الكونستركشن Listbox و ضمن هذا الكونستركشن أضفنا كلاس إسم الواجهة JFrame و ثم أنشانا كلاس أداة إظهار العناوين و الجمل JLabel و حَدَدنا الأحجام تكون في المنتصف عبر setHorizontalAlignment و حجم الليبل أي مساحة اللستة 100*400 و قمنا بإنشاء الزر JButton من أجل عند الضغط عليه يتم تنفيذ الحَدَث المطلوب, و الإنترفيس addActionListener مهمته التنصت على الحَدَث أين تم الضغط و الدالة actionPerformed هي سوف تقوم بتنفيذ الحًدًث و إستدعينا المتغير الذي سيحصل على القيمة من الليست و هو dat عبر دالة getSelectedValue, و بداخل البرنامج الرئيسي قُمنا بإستدعاء الكونستركشن لأننا أنشانا الكود بداخل الكونستركشن Listbox, و عند تنفيذ البرنامج سوف يتم التنفيذ بالشكل الآتي

كما نلاحظ من الصورة عندما قمنا بتحديد الإسم Wazer من اللست و ضغطنا على الزر show مباشرتاً تم تنفيذ الحدث و ظهور القيمة على الواجهة في الأعلى.

إضغط هنا في حال تريد التوجه لكافة دروس الجافا في موقعنا.

هناك تعليق واحد:

  1. الله يعطيك العافية على الشرح الوفير
    في حال يوجد عنا 2 ليستا وبحاجة ربطهم ببعض
    مثلا اول ليستا تحتوي على a,b

    عند اختيار a تظهر الليستا الاخرى فيها وليكن 1.2.3
    عند اختيار b تضهر الليستا الاخرى فيها 4.5.6

    كيف يتم كتابة الكود وجزاك الله الخير

    ردحذف

facebook

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *