الكلاس JList لإنشاء قائمة إختيار في جافا - ProgrammerTech
Language:

Search

الكلاس JList لإنشاء قائمة إختيار في جافا

  • Share this:
الكلاس JList لإنشاء قائمة إختيار في جافا

الكلاس JList لإنشاء قائمة في جافا

الكلاس ( JList ) إن قائمة 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("listbox");
        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.

و عند تشغيل هذا الكود سوف تكون النتيجه كما بالصورة الآتية.

1-80.webp

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

 

الحصول على قيمة بواسطة 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.

2-73.webp

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


Tags:
Muhammad Alush

Muhammad Alush

إسمي محمد تركي العلوش محب للتقنية و التعلم الذاتي, و جميع خبراتي تعلمتها ذاتياً, و اللغات البرمجية التي أتقنها هي html, css, javascript, php, c, python بالإضافة إلى حبي الكبير لمجال الشبكات.

موقعي programmer-tech.com