JavaGUI 15 下拉框&&列表框

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() {

            @Override
            public 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();
    }
}

在这里插入图片描述

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值