当前位置: 代码迷 >> 综合 >> JavaGUI 15 下拉框列表框
  详细解决方案

JavaGUI 15 下拉框列表框

热度:14   发布时间:2023-11-24 13:56:36.0

7.1 下拉框&&列表框


下拉框和列表框是用来存储数据并且显示出来的!我们知道在我们 程序员的世界里! 数据这东西是很重要的!所以这两个 组件也是 很重要的!


7.1.1 JComboBaox 下拉框

语法格式:
//创建下拉框对象
JComboBox comboBox = new JComboBox();
//添加项目数据
comboBox.addItem(数据项目);



我们这个数据,基本上是可以接收很多类型的。只要能显示出来的类型都可以。整数、时间、字符串…在这里插入图片描述

package com.muquanyu.lesson06;import javax.swing.*;
import java.awt.*;public class ComboBoxDemo extends JFrame {
    public ComboBoxDemo(){
    Container container = getContentPane();JComboBox status = new JComboBox();//整数status.addItem(2);//字符串status.addItem("项目2");status.addItem("项目3");setLayout(null);status.setBounds(200,200,100,30);add(status);setBounds(500,500,500,500);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setVisible(true);}public static void main(String[] args) {
    ComboBoxDemo comboBoxDemo = new ComboBoxDemo();}}

在这里插入图片描述


7.1.2 JList 列表

Jlist 只能在创建的时候,添加 一个任意的 序列数据。那还有办法 进行数据显示的更新吗?


有呀,我们把 数据和 JList 对象都设为 类变量存储起来,当更新事件被激活,就把 数据更新,然后让 JList 对象 setListData() 方法 来进行数据的重新 赋值 不就完事了

  • 字符串数组(数据)
package com.muquanyu.lesson06;import javax.swing.*;
import java.awt.*;public class JlistDemo extends JFrame {
    public JlistDemo(){
    Container container = getContentPane();
//数组的静态初始化String[] strdata = {
    "数据1","数据2","数据3"};
//直接在创建的时候添加数据就行了。JList jList = new JList(strdata);container.add(jList);setLayout(null);jList.setBounds(0,0,200,400);setBounds(500,500,500,500);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setVisible(true);}public static void main(String[] args) {
    JlistDemo JlistDemo = new JlistDemo();}
}

在这里插入图片描述

  • Vector模板(泛型编程)
package com.muquanyu.lesson06;import javax.swing.*;
import java.awt.*;
import java.util.Vector;public class JlistDemo extends JFrame {
    public JlistDemo(){
    Container container = getContentPane();//String[] strdata = {"数据1","数据2","数据3"};//泛型编程的 Vector 模板,在C/C++ 里是我们 最常用的 一个容器,通常 我们 如果 认为 数组比较笨重 就用这个了。在 Java 中 通常 用 ArrayList 的概率会更大。Vector<String>listData = new Vector<String>();listData.add("A");listData.add("B");listData.add("C");JList jList = new JList(listData);container.add(jList);setLayout(null);jList.setBounds(0,0,200,400);setBounds(500,500,500,500);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setVisible(true);}public static void main(String[] args) {
    JlistDemo JlistDemo = new JlistDemo();}
}

泛型编程的 Vector 模板,在C/C++ 里是我们 最常用的 一个容器,通常 我们 如果 认为 数组比较笨重 就用这个了。在 Java 中 通常 用 ArrayList 的概率会更大。

在这里插入图片描述

  • 更新数据的例子
package com.muquanyu.lesson06;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;public class JlistDemo extends JFrame {
    private Vector<String>listData = null;private JList jList = null;public JlistDemo(){
    Container container = getContentPane();//String[] strdata = {"数据1","数据2","数据3"};listData = new Vector<String>();listData.add("A");listData.add("B");listData.add("C");Button button = new Button("Add D data");button.setBounds(300,300,100,100);button.addActionListener(new ActionListener() {
    @Overridepublic void actionPerformed(ActionEvent e) {
    listData.add("D");jList.setListData(listData);}});container.add(button);jList = new JList(listData);container.add(jList);setLayout(null);jList.setBounds(0,0,200,400);setBounds(500,500,500,500);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setVisible(true);}public static void main(String[] args) {
    JlistDemo JlistDemo = new JlistDemo();}
}

在这里插入图片描述