溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中怎么利用Swing實現(xiàn)一個JList列表框

發(fā)布時間:2021-08-07 13:36:49 來源:億速云 閱讀:269 作者:Leah 欄目:編程語言

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è)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI