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:允許選擇一個元素。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章