Java Swing JList列表框的實現
阿新 • • 發佈:2020-01-07
1. 概述
官方JavaDocsApi: javax.swing.JList
JList,列表框。JList 以列表的形式展示多個選項,允許使用者選擇一個或多個選項。其中的選項內容由一個 ListModel 例項來維護。JList 不實現直接滾動,需要滾動顯示,可以結合 JScrollPane 實現滾動效果。
JList 常用構造方法:
/** * 一個 JList 例項維護這一個 ListModel 例項。 * ListModel 例項可以直接建立,也可以通過把 陣列 或 集合 傳遞到 JList 中間接建立。 */ JList() JList(ListModel dataModel) JList(Object[] listData) JList(Vector<?> listData)
JList 選項資料 相關方法:
// 以陣列形式設定選項資料,內部將自動封裝成 ListModel void setListData(Object[] listData) // 以集合形式設定選項資料,內部將自動封裝成 ListModel void setListData(Vector<?> listData) // 直接設定選項資料的 ListModel void setModel(ListModel<?> model) // 獲取維護選項資料的 ListModel。 // 再通過 listModel.getElementAt(int index) 和 listModel.getSize() // 可分別 獲取指定索引的選項資料 和 選項數量。 ListModel<?> getModel()
JList 選項選中索引 相關方法:
// 設定選擇模式,有三個模式: 只能單選、可間隔多選、可連續多選 void setSelectionMode(int selectionMode) // 設定某個選項選中 void setSelectedIndex(int index) // 設定某一些選項選中 void setSelectedIndices(int[] indices) // 獲取第一個選中的選項索引 int getSelectedIndex() // 獲取所有選中的選項索引 int[] getSelectedIndices()
JList 字型和顏色 相關方法:
// 設定字型 void setFont(Font font) // 設定字型顏色(未選中時) void setForeground(Color fg) // 設定選中選項的字型顏色 void setSelectionForeground(Color selectionForeground) // 設定選中條的顏色 void setSelectionBackground(Color selectionBackground)
JList 監聽器 相關方法:
// 新增選項選中狀態被改變的監聽器 void addListSelectionListener(ListSelectionListener listener)
2. 程式碼例項
package com.xiets.swing; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.*; public class Main { public static void main(String[] args) { JFrame jf = new JFrame("測試視窗"); jf.setSize(300,300); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JPanel panel = new JPanel(); // 建立一個 JList 例項 final JList<String> list = new JList<String>(); // 設定一下首選大小 list.setPreferredSize(new Dimension(200,100)); // 允許可間斷的多選 list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); // 設定選項資料(內部將自動封裝成 ListModel ) list.setListData(new String[]{"香蕉","雪梨","蘋果","荔枝"}); // 新增選項選中狀態被改變的監聽器 list.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { // 獲取所有被選中的選項索引 int[] indices = list.getSelectedIndices(); // 獲取選項資料的 ListModel ListModel<String> listModel = list.getModel(); // 輸出選中的選項 for (int index : indices) { System.out.println("選中: " + index + " = " + listModel.getElementAt(index)); } System.out.println(); } }); // 設定預設選中項 list.setSelectedIndex(1); // 新增到內容面板容器 panel.add(list); jf.setContentPane(panel); jf.setVisible(true); } }
結果展示:
點選選項(按住 Ctrl 鍵可多選),檢視控制檯輸出。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。