Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

JList มีโหมดการเลือกกี่แบบใน Java

JList เป็นคอมโพเนนต์ที่ขยายจาก JComponent ใช้แสดงรายการอ็อบเจกต์ ให้ผู้ใช้เลือกหนึ่งหรือหลายรายการ

มี 3 โหมดการเลือก สำหรับ 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();
    }
}

ผลลัพธ์

JList มีโหมดการเลือกกี่แบบใน Java