您好,登錄后才能下訂單哦!
Java中怎么利用Swing實現(xiàn)一個JList列表框,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
JList 常用構(gòu)造方法:
/** * 一個 JList 實例維護這一個 ListModel 實例。 * ListModel 實例可以直接創(chuàng)建,也可以通過把 數(shù)組 或 集合 傳遞到 JList 中間接創(chuàng)建。 */JList()JList(ListModel dataModel)JList(Object[] listData)JList(Vector<?> listData)
JList 選項數(shù)據(jù) 相關(guān)方法:
// 以數(shù)組形式設(shè)置選項數(shù)據(jù),內(nèi)部將自動封裝成 ListModelvoid setListData(Object[] listData)// 以集合形式設(shè)置選項數(shù)據(jù),內(nèi)部將自動封裝成 ListModelvoid setListData(Vector<?> listData)// 直接設(shè)置選項數(shù)據(jù)的 ListModelvoid setModel(ListModel<?> model)// 獲取維護選項數(shù)據(jù)的 ListModel。// 再通過 listModel.getElementAt(int index) 和 listModel.getSize() // 可分別 獲取指定索引的選項數(shù)據(jù) 和 選項數(shù)量。ListModel<?> getModel()
JList 選項選中索引 相關(guān)方法:
// 設(shè)置選擇模式,有三個模式: 只能單選、可間隔多選、可連續(xù)多選void setSelectionMode(int selectionMode)// 設(shè)置某個選項選中void setSelectedIndex(int index)// 設(shè)置某一些選項選中void setSelectedIndices(int[] indices)// 獲取第一個選中的選項索引int getSelectedIndex()// 獲取所有選中的選項索引int[] getSelectedIndices()
JList 字體和顏色 相關(guān)方法:
// 設(shè)置字體void setFont(Font font)// 設(shè)置字體顏色(未選中時)void setForeground(Color fg)// 設(shè)置選中選項的字體顏色void setSelectionForeground(Color selectionForeground)// 設(shè)置選中條的顏色void setSelectionBackground(Color selectionBackground)
JList 監(jiān)聽器 相關(guān)方法:
// 添加選項選中狀態(tài)被改變的監(jiān)聽器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(); // 創(chuàng)建一個 JList 實例 final JList<String> list = new JList<String>(); // 設(shè)置一下首選大小 list.setPreferredSize(new Dimension(200, 100)); // 允許可間斷的多選 list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); // 設(shè)置選項數(shù)據(jù)(內(nèi)部將自動封裝成 ListModel ) list.setListData(new String[]{"香蕉", "雪梨", "蘋果", "荔枝"}); // 添加選項選中狀態(tài)被改變的監(jiān)聽器 list.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { // 獲取所有被選中的選項索引 int[] indices = list.getSelectedIndices(); // 獲取選項數(shù)據(jù)的 ListModel ListModel<String> listModel = list.getModel(); // 輸出選中的選項 for (int index : indices) { System.out.println("選中: " + index + " = " + listModel.getElementAt(index)); } System.out.println(); } }); // 設(shè)置默認選中項 list.setSelectedIndex(1); // 添加到內(nèi)容面板容器 panel.add(list); jf.setContentPane(panel); jf.setVisible(true); }}
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。