Swing--JList列表框组件

列表框JList和下拉列表框JComboBox区别

  • 列表框和下拉列表框区别不仅表现在外观上,当激活下拉列表框时,还会出现下拉列表框中的内容,但列表框只是在窗体上占据固定的大小
  • 如果需要列表框具有滚动效果,可以将列表框放入滚动面板中,当用户选择列表框中的某一项时,按住 Shift 键并选择列表框中的其他项目,可以连续选择两个选项之间的所有项目,也可以按住 Ctrl 键选择多个项目

JList列表框构造方法

  • JList():构造一个空的只读模型的列表框
  • JList(ListModel dataModel):根据指定的非 null 模型对象构造一个显示元素的列表框
  • JList(Object[] listData):使用 listData 指定的元素构造—个列表框
  • JList(Vector<?> listData):使用 listData 指定的元素构造一个列表框

上述的第一个构造方法没有参数,使用此方法创建列表框后可以使用 setListData() 方法对列表框的元素进行填充,也可以调用其他形式的构造方法在初始化时对列表框的元素进行填充。常用的元素类型有 3 种,分别是数组、Vector 对象和 ListModel 模型

Demo01

import javax.swing.*;

public class DemoJlist {
    public static void main(String[] args) {
        JFrame jFrame = new JFrame("列表框组件示例");
        String[] arr ={"身份证","驾驶证","军官证","学生证"};
        JList list = new JList(arr);
        JLabel jLabel = new JLabel("证件类型: ");
        JPanel jPanel = new JPanel();
        jPanel.add(jLabel);
        jPanel.add(list);
        jFrame.add(jPanel);
        jFrame.setVisible(true);
        jFrame.setSize(400,200);
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

Demo01运行结果如下
在这里插入图片描述
Demo02

import javax.swing.*;

public class DemoJlist {
    public static void main(String[] args) {
        JFrame jFrame = new JFrame("列表框组件示例");
        String[] arr ={"身份证","驾驶证","军官证","学生证","居住证","移民证","结婚证"};
        JList list = new JList(arr);
        JLabel jLabel = new JLabel("证件类型: ");
        JScrollPane jScrollPane = new JScrollPane(list);
        jScrollPane.add(jLabel);
        jFrame.add(jScrollPane);
        jFrame.setVisible(true);
        jFrame.setSize(300,150);
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

Demo02运行结果如下
在这里插入图片描述

  • JList 组件在默认情况下支持单选和多选,可以通过 setSelectionMode() 方法来限制选择行为。例如,下面的代码将限制只能在列表框中进行单选操作。
  • 该方法有三个常量
  • ListSelectionModel.SINGLE_INTERVAL_SELECTION:允许选择一个或多个连续的元素。
  • ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:允许选择一个连续的元素。
  • ListSelectionModel.SINGLE_SELECTION:允许选择一个元素。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章