Computer >> Máy Tính >  >> Lập trình >> Java

Có bao nhiêu loại chế độ lựa chọn cho một JList trong Java?


A JList là một thành phần có thể mở rộng JComponent lớp được sử dụng để hiển thị danh sách các đối tượng cho phép người dùng chọn một hoặc nhiều mục.

Có ba loại chế độ lựa chọn cho JList trong Java

  • ListSelectionModel.SINGLE_SELECTION :Mỗi lần chỉ có thể chọn một chỉ mục danh sách.
  • ListSelectionModel.SINGLE_INTERVAL_SELECTION :Mỗi lần chỉ có thể chọn một khoảng liền kề.
  • ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: Trong chế độ này, không có hạn chế về những gì có thể được chọn. Đây là chế độ mặc định.

Ví dụ

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();
   }
}

Đầu ra

Có bao nhiêu loại chế độ lựa chọn cho một JList trong Java?