Swingطريقة معرفة عدد و قيم العناصر التي قام المستخدم باختيارها في الـ JList
المثال التالي يعلمك طريقة معرفة عدد و قيم العناصر التي قام المستخدم باختيارها في كائن الـ JList.
هنا النتيجة تتغير مباشرةً أثناء إختيار العناصر من القائمة.
مثال
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class Main {
// هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها
static JFrame frame = new JFrame("JList demo");
static DefaultListModel model = new DefaultListModel();
static JList list = new JList( model );
static JScrollPane listScrollPane = new JScrollPane( list );
static JLabel totalSelected = new JLabel("Total Selected:");
static JLabel selectedItems = new JLabel("Selected Items:");
public static void main(String[] args) {
// frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ
listScrollPane.setBounds(20, 40, 100, 230);
totalSelected.setBounds(140, 40, 340, 30);
selectedItems.setBounds(140, 80, 340, 30);
// و التي بدورها ستظهر في القائمة model هنا أضفنا عدة عناصر في الـ
model.addElement("red");
model.addElement("blue");
model.addElement("green");
model.addElement("yellow");
model.addElement("orange");
model.addElement("brown");
model.addElement("pink");
model.addElement("purple");
model.addElement("gray");
model.addElement("black");
model.addElement("white");
// frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ
frame.add(listScrollPane);
frame.add(totalSelected);
frame.add(selectedItems);
// frame هنا قمنا بتحديد خصائص الـ
frame.setSize(550, 350);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setVisible(true);
// list هنا نضع الأوامر التي نريدها أن تتنفذ عند إختيار أي عنصر موجود في القائمة
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e)
{
// سيتم عرض عدد العناصر التي قام المستخدم باختيارها و بالإضافة إلى قيمهم
totalSelected.setText("Total Selected: "+list.getSelectedIndices().length);
selectedItems.setText("Selected Items: "+list.getSelectedValuesList());
}
});
}
}
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class Main {
// هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها
static JFrame frame = new JFrame("JList demo");
static DefaultListModel model = new DefaultListModel();
static JList list = new JList( model );
static JScrollPane listScrollPane = new JScrollPane( list );
static JLabel totalSelected = new JLabel("Total Selected:");
static JLabel selectedItems = new JLabel("Selected Items:");
public static void main(String[] args) {
// frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ
listScrollPane.setBounds(20, 40, 100, 230);
totalSelected.setBounds(140, 40, 340, 30);
selectedItems.setBounds(140, 80, 340, 30);
// و التي بدورها ستظهر في القائمة model هنا أضفنا عدة عناصر في الـ
model.addElement("red");
model.addElement("blue");
model.addElement("green");
model.addElement("yellow");
model.addElement("orange");
model.addElement("brown");
model.addElement("pink");
model.addElement("purple");
model.addElement("gray");
model.addElement("black");
model.addElement("white");
// frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ
frame.add(listScrollPane);
frame.add(totalSelected);
frame.add(selectedItems);
// frame هنا قمنا بتحديد خصائص الـ
frame.setSize(550, 350);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setVisible(true);
// list هنا نضع الأوامر التي نريدها أن تتنفذ عند إختيار أي عنصر موجود في القائمة
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e)
{
// سيتم عرض عدد العناصر التي قام المستخدم باختيارها و بالإضافة إلى قيمهم
totalSelected.setText("Total Selected: "+list.getSelectedIndices().length);
selectedItems.setText("Selected Items: "+list.getSelectedValuesList());
}
});
}
}
ستظهر لك النافذة التالية عند التشغيل.
لإختيار أكثر من عنصر, أبقي إصبعك على الزر Ctrl أثناء إختيار العناصر.