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

Java 入門圖形用戶界面設(shè)計(jì)之列表框JList

 更新時(shí)間:2022年02月16日 14:38:58   作者:小旺不正經(jīng)  
圖形界面(簡(jiǎn)稱GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶來(lái)說(shuō)在視覺(jué)上更易于接受,本篇精講Java語(yǔ)言中關(guān)于圖形用戶界面的列表框JList

Java程序設(shè)計(jì) 圖形用戶界面 【十一】列表框JList

列表框JList

JList常用方法

方法作用
public JList(ListModel dataModel)根據(jù)ListModel構(gòu)造JList
public JList(Object[] listData)根據(jù)對(duì)象數(shù)組構(gòu)造JList
public JList(Vector<?> listData)根據(jù)一個(gè)Vector構(gòu)造JList
public void setSelectionMode(int selectionMode)設(shè)置選擇模式,是多選還是單選
public ListModel getModel()返回列表框的列表模型
public int[] getSelectedIndices()返回所選擇的全部數(shù)組

可以通過(guò)ListSelectionModel接口完成列表框是多選還是單選

ListSelectionModel定義的常量

常量作用
static final int MULTIPLE_INTERVAL_SELECTION一次選擇一個(gè)或多個(gè)連續(xù)的索引范圍
static final int SINGLE_INTERVAL_SELECTION一次選擇一個(gè)連續(xù)范圍的值
static final int SINGLE_SELECTION一次選擇一個(gè)值
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;

class MyList{
    private JFrame frame = new JFrame("一");
    private Container cont = frame.getContentPane();
    private JList list1 = null;
    private JList list2 = null;
    public MyList(){
        this.frame.setLayout(new GridLayout(1,3));
        String n[] = {"A","B","C","D","E","F"};
        Vector<String> v = new Vector<String>();
        v.add("A");
        v.add("B");
        v.add("C");
        this.list1 = new JList(n);
        this.list2 = new JList(v);
        list1.setBorder(BorderFactory.createTitledBorder("請(qǐng)選擇"));
        list2.setBorder(BorderFactory.createTitledBorder("請(qǐng)選擇"));
        list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        list2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        cont.add(this.list1);
        cont.add(this.list2);
        this.frame.setSize(300,200);
        this.frame.setVisible(true);
        this.frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyList();
    }
}

image-20220214170217329

第一個(gè)JList通過(guò)字符串?dāng)?shù)組設(shè)置列表的內(nèi)容,并通過(guò)setSelectionMode()方法設(shè)置一次性可以選擇多個(gè)選項(xiàng)

第二個(gè)JList通過(guò)Vector設(shè)置列表的內(nèi)容,并通過(guò)setSelectionMode()方法將其設(shè)置成每次只能選擇一個(gè)選項(xiàng)

使用ListModel構(gòu)造JList

ListModel是一個(gè)專門用于創(chuàng)建JList列表內(nèi)容操作的接口

方法作用
void addListDataListener(ListDataListener l)加入數(shù)據(jù)改變事件的監(jiān)聽(tīng)
void removeListDataListener(ListDataListener l)加入數(shù)據(jù)刪除時(shí)的監(jiān)聽(tīng)
Object getElementAt(int index)返回指定索引處的內(nèi)容
int getSize()返回列表長(zhǎng)度
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class MyListModel extends AbstractListModel{
    private String n[]={"A","B","C","D"};

    @Override
    public int getSize() {
        return this.n.length;
    }

    public Object getElementAt(int ind){
        if(ind<this.n.length){
            return this.n[ind];
        }else {
            return null;
        }
    }
}
class MyList{
    private JFrame frame = new JFrame("一");
    private Container cont = frame.getContentPane();
    private JList list1 =null;
    public MyList(){
        this.list1 = new JList(new MyListModel());
        list1.setBorder(BorderFactory.createTitledBorder("請(qǐng)選擇"));
        list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        cont.add(this.list1);
        this.frame.setSize(300,200);
        this.frame.setVisible(true);
        this.frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyList();
    }
}

image-20220214173717297

JList事件處理

使用ListSelectionListener的監(jiān)聽(tīng)接口實(shí)現(xiàn)對(duì)JList中所選項(xiàng)的監(jiān)聽(tīng)

ListSelectionListener接口定義的方法

方法作用
void valueChanged(ListSelectionEvent e)當(dāng)值發(fā)生改變時(shí)調(diào)用

ListSelectionEvent的常用方法

方法作用
public int getFirsIndex()返回選擇的第1個(gè)選項(xiàng)的索引值
public int getLastIndex()返回選擇的最后1個(gè)選項(xiàng)的索引值

對(duì)JList進(jìn)行監(jiān)聽(tīng)

import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class MyListModel extends AbstractListModel{
    private String n[]={"A","B","C","D"};

    @Override
    public int getSize() {
        return this.n.length;
    }

    public Object getElementAt(int ind){
        if(ind<this.n.length){
            return this.n[ind];
        }else {
            return null;
        }
    }
}
class MyList implements ListSelectionListener {
    private JFrame frame = new JFrame("一");
    private Container cont = frame.getContentPane();
    private JList list1 =null;
    public MyList(){
        this.list1 = new JList(new MyListModel());
        list1.setBorder(BorderFactory.createTitledBorder("請(qǐng)選擇"));
        list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        list1.addListSelectionListener(this);
        cont.add(this.list1);
        this.frame.setSize(300,200);
        this.frame.setVisible(true);
        this.frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }

    @Override
    public void valueChanged(ListSelectionEvent e) {
        int temp[] = list1.getSelectedIndices();
        System.out.print("選的的內(nèi)容是:");
        for(int i:temp){
            System.out.print(list1.getModel().getElementAt(i)+",");
        }
        System.out.println();
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyList();
    }
}

image-20220214180931894

image-20220214180940913

到此這篇關(guān)于Java 入門圖形用戶界面設(shè)計(jì)之列表框JList的文章就介紹到這了,更多相關(guān)Java 列表框JList內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • HashMap原理及put方法與get方法的調(diào)用過(guò)程

    HashMap原理及put方法與get方法的調(diào)用過(guò)程

    這篇文章主要介紹了HashMap原理及put方法與get方法的調(diào)用過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解mybatis三種分頁(yè)方式

    詳解mybatis三種分頁(yè)方式

    本文主要介紹了詳解mybatis三種分頁(yè)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • SpringBoot整合RabbitMQ 手動(dòng)應(yīng)答(簡(jiǎn)單demo)

    SpringBoot整合RabbitMQ 手動(dòng)應(yīng)答(簡(jiǎn)單demo)

    這篇文章主要介紹了SpringBoot整合RabbitMQ 手動(dòng)應(yīng)答 簡(jiǎn)單demo,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot調(diào)整ApplicationContextAware如何實(shí)現(xiàn)類加載順序

    SpringBoot調(diào)整ApplicationContextAware如何實(shí)現(xiàn)類加載順序

    SpringBoot調(diào)整ApplicationContextAware實(shí)現(xiàn)類加載順序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • java兩個(gè)線程同時(shí)寫一個(gè)文件

    java兩個(gè)線程同時(shí)寫一個(gè)文件

    這篇文章主要為大家詳細(xì)介紹了java兩個(gè)線程同時(shí)寫一個(gè)文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 解決mybatis中order by排序無(wú)效問(wèn)題

    解決mybatis中order by排序無(wú)效問(wèn)題

    這篇文章主要介紹了解決mybatis中order by排序無(wú)效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Java使用@Validated注解進(jìn)行參數(shù)驗(yàn)證的方法

    Java使用@Validated注解進(jìn)行參數(shù)驗(yàn)證的方法

    這篇文章主要介紹了Java使用@Validated注解進(jìn)行參數(shù)驗(yàn)證的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 一篇文章帶你入門Java方法詳解

    一篇文章帶你入門Java方法詳解

    這篇文章主要介紹了簡(jiǎn)單了解Java方法的定義和使用實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 第一次編寫Java流布局圖形界面

    第一次編寫Java流布局圖形界面

    這篇文章主要為大家詳細(xì)介紹了第一次編寫Java流布局圖形界面的相關(guān)代碼,感興趣的小伙伴們可以參考一下
    2016-08-08
  • mybatis-plus 查詢時(shí)排除字段方法的兩種方法

    mybatis-plus 查詢時(shí)排除字段方法的兩種方法

    我們?cè)陂_(kāi)發(fā)應(yīng)用時(shí),在某些應(yīng)用場(chǎng)景下查詢有時(shí)需要排除某些字段,本文主要介紹了兩種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09

最新評(píng)論