欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Swing JList列表框的實(shí)現(xiàn)

 更新時(shí)間:2019年12月09日 11:11:12   作者:xietansheng  
這篇文章主要介紹了Java Swing JList列表框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1. 概述

官方JavaDocsApi: javax.swing.JList

JList,列表框。JList 以列表的形式展示多個(gè)選項(xiàng),允許用戶選擇一個(gè)或多個(gè)選項(xiàng)。其中的選項(xiàng)內(nèi)容由一個(gè) ListModel 實(shí)例來維護(hù)。JList 不實(shí)現(xiàn)直接滾動(dòng),需要滾動(dòng)顯示,可以結(jié)合 JScrollPane 實(shí)現(xiàn)滾動(dòng)效果。

JList 常用構(gòu)造方法:

/**
 * 一個(gè) JList 實(shí)例維護(hù)這一個(gè) ListModel 實(shí)例。
 * ListModel 實(shí)例可以直接創(chuàng)建,也可以通過把 數(shù)組 或 集合 傳遞到 JList 中間接創(chuàng)建。
 */
JList()

JList(ListModel dataModel)

JList(Object[] listData)

JList(Vector<?> listData)

JList 選項(xiàng)數(shù)據(jù) 相關(guān)方法:

// 以數(shù)組形式設(shè)置選項(xiàng)數(shù)據(jù),內(nèi)部將自動(dòng)封裝成 ListModel
void setListData(Object[] listData)

// 以集合形式設(shè)置選項(xiàng)數(shù)據(jù),內(nèi)部將自動(dòng)封裝成 ListModel
void setListData(Vector<?> listData)

// 直接設(shè)置選項(xiàng)數(shù)據(jù)的 ListModel
void setModel(ListModel<?> model)

// 獲取維護(hù)選項(xiàng)數(shù)據(jù)的 ListModel。
// 再通過 listModel.getElementAt(int index) 和 listModel.getSize() 
// 可分別 獲取指定索引的選項(xiàng)數(shù)據(jù) 和 選項(xiàng)數(shù)量。
ListModel<?> getModel()

JList 選項(xiàng)選中索引 相關(guān)方法:

// 設(shè)置選擇模式,有三個(gè)模式: 只能單選、可間隔多選、可連續(xù)多選
void setSelectionMode(int selectionMode)

// 設(shè)置某個(gè)選項(xiàng)選中
void setSelectedIndex(int index)

// 設(shè)置某一些選項(xiàng)選中
void setSelectedIndices(int[] indices)

// 獲取第一個(gè)選中的選項(xiàng)索引
int getSelectedIndex()

// 獲取所有選中的選項(xiàng)索引
int[] getSelectedIndices()

JList 字體和顏色 相關(guān)方法:

// 設(shè)置字體
void setFont(Font font)

// 設(shè)置字體顏色(未選中時(shí))
void setForeground(Color fg)

// 設(shè)置選中選項(xiàng)的字體顏色
void setSelectionForeground(Color selectionForeground)

// 設(shè)置選中條的顏色
void setSelectionBackground(Color selectionBackground)

JList 監(jiān)聽器 相關(guān)方法:

// 添加選項(xiàng)選中狀態(tài)被改變的監(jiān)聽器
void addListSelectionListener(ListSelectionListener listener)

2. 代碼實(shí)例

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)建一個(gè) JList 實(shí)例
    final JList<String> list = new JList<String>();

    // 設(shè)置一下首選大小
    list.setPreferredSize(new Dimension(200, 100));

    // 允許可間斷的多選
    list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

    // 設(shè)置選項(xiàng)數(shù)據(jù)(內(nèi)部將自動(dòng)封裝成 ListModel )
    list.setListData(new String[]{"香蕉", "雪梨", "蘋果", "荔枝"});

    // 添加選項(xiàng)選中狀態(tài)被改變的監(jiān)聽器
    list.addListSelectionListener(new ListSelectionListener() {
      @Override
      public void valueChanged(ListSelectionEvent e) {
        // 獲取所有被選中的選項(xiàng)索引
        int[] indices = list.getSelectedIndices();
        // 獲取選項(xiàng)數(shù)據(jù)的 ListModel
        ListModel<String> listModel = list.getModel();
        // 輸出選中的選項(xiàng)
        for (int index : indices) {
          System.out.println("選中: " + index + " = " + listModel.getElementAt(index));
        }
        System.out.println();
      }
    });
    
    // 設(shè)置默認(rèn)選中項(xiàng)
    list.setSelectedIndex(1);

    // 添加到內(nèi)容面板容器
    panel.add(list);

    jf.setContentPane(panel);
    jf.setVisible(true);
  }
}

結(jié)果展示:

點(diǎn)擊選項(xiàng)(按住 Ctrl 鍵可多選),查看控制臺輸出。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot 如何使用 JWT 保護(hù) Rest Api 接口

    SpringBoot 如何使用 JWT 保護(hù) Rest Api&nbs

    使用spring-boot開發(fā)RESTful API非常的方便,在生產(chǎn)環(huán)境中,對發(fā)布的 API 增加授權(quán)保護(hù)是非常必要的,現(xiàn)在我們來看如何利用JWT技術(shù)為API 增加授權(quán)保護(hù),保證只有獲得授權(quán)的用戶才能夠訪問 API,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • Spring中的Context你真的懂了嗎

    Spring中的Context你真的懂了嗎

    這篇文章主要給大家介紹了關(guān)于Spring中Context的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • java生成xml格式文件的方法

    java生成xml格式文件的方法

    這篇文章主要介紹了java生成xml格式文件的方法,涉及java節(jié)點(diǎn)遍歷與屬性操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • Springboot多種情況yml配置代碼實(shí)例

    Springboot多種情況yml配置代碼實(shí)例

    這篇文章主要介紹了Springboot多種情況yml配置代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Quarkus中RESTEasy?Reactive集成合并master分支

    Quarkus中RESTEasy?Reactive集成合并master分支

    這篇文章主要為大家介紹了Quarkus中RESTEasy?Reactive集成合并master分支的詳細(xì)作用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • 如何在Maven項(xiàng)目中運(yùn)行JUnit5測試用例實(shí)現(xiàn)

    如何在Maven項(xiàng)目中運(yùn)行JUnit5測試用例實(shí)現(xiàn)

    這篇文章主要介紹了如何在Maven項(xiàng)目中運(yùn)行JUnit5測試用例實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 深入解析@InitBinder注解的功能與應(yīng)用

    深入解析@InitBinder注解的功能與應(yīng)用

    這篇文章主要介紹了深入解析@InitBinder注解的功能與應(yīng)用,從字面意思可以看出這個(gè)的作用是給Binder做初始化的,被此注解的方法可以對WebDataBinder初始化,webDataBinder是用于表單到方法的數(shù)據(jù)綁定的,需要的朋友可以參考下
    2023-10-10
  • java中如何使用泛型方法比較大小

    java中如何使用泛型方法比較大小

    這篇文章主要介紹了java中如何使用泛型方法比較大小,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java 設(shè)計(jì)模式原則之迪米特法則詳解

    Java 設(shè)計(jì)模式原則之迪米特法則詳解

    這篇文章主要介紹了Java 設(shè)計(jì)模式原則之迪米特法則詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Mybatis查詢時(shí)數(shù)據(jù)丟失的問題及解決

    Mybatis查詢時(shí)數(shù)據(jù)丟失的問題及解決

    Mybatis查詢時(shí)數(shù)據(jù)丟失的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論