A JList เป็นส่วนประกอบที่สามารถขยาย JComponent คลาสที่ใช้แสดงรายการวัตถุที่อนุญาตให้ผู้ใช้เลือกหนึ่งรายการขึ้นไป
มีโหมดการเลือกสามประเภทสำหรับ JList ใน Java
- ListSelectionModel.SINGLE_SELECTION :สามารถเลือกดัชนีรายการได้ครั้งละหนึ่งรายการเท่านั้น
- ListSelectionModel.SINGLE_INTERVAL_SELECTION :สามารถเลือกช่วงเวลาต่อเนื่องกันได้ครั้งละหนึ่งช่วงเท่านั้น
- ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: ในโหมดนี้ ไม่มีการจำกัดสิ่งที่สามารถเลือกได้ นี่คือโหมดเริ่มต้น
ตัวอย่าง
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JListSelectionModeTest extends JFrame implements ActionListener { private JList list; private DefaultListModel listModel; public JListSelectionModeTest() { setTitle("JListSelectionMode Test"); setLayout(new BorderLayout()); listModel = new DefaultListModel(); for (int i = 1; i < 10; i++) { listModel.addElement("list item #" + i); } list = new JList(listModel); add(new JScrollPane(list), BorderLayout.CENTER); JPanel panel = new JPanel(new GridLayout(3, 1)); JRadioButton rb1 = new JRadioButton("SINGLE_SELECTION"); rb1.addActionListener(this); JRadioButton rb2 = new JRadioButton("SINGLE_INTERVAL_SELECTION"); rb2.addActionListener(this); JRadioButton rb3 = new JRadioButton("MULTIPLE_INTERVAL_SELECTION"); rb3.addActionListener(this); ButtonGroup bg = new ButtonGroup(); bg.add(rb1); bg.add(rb2); bg.add(rb3); panel.add(rb1); panel.add(rb2); panel.add(rb3); add(panel, BorderLayout.NORTH); setSize(350, 275); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent ae) { if (ae.getActionCommand().equals("SINGLE_SELECTION")) list.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); else if (ae.getActionCommand().equals("SINGLE_INTERVAL_SELECTION")) list.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); else if (ae.getActionCommand().equals("MULTIPLE_INTERVAL_SELECTION")) list.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); } public static void main(String[] args) { new JListSelectionModeTest(); } }
ผลลัพธ์