Java Swing JComboBox:下拉列表组件

package com.roadjava.student.view;

import javax.swing.*;

public class JComboBoxDemo {
    public static void main(String[] args) {
        JFrame f=new JFrame("下拉列表组件");
        JPanel jp = new JPanel();   //创建面板
        JLabel label1= new JLabel("证件类型");  //创建标签
        JComboBox cmb=new JComboBox();  //创建JCombox对象
        cmb.addItem("请选择");
        cmb.addItem("身份证");
        cmb.addItem("驾驶证");
        cmb.addItem("军官证");
        jp.add(cmb);
        jp.add(label1);
        f.add(jp);
        f.setBounds(300,300,300,300);
        f.setVisible(true);
        f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
    }
}

运行结果:
在这里插入图片描述

package swingDemo318;

import javax.swing.*;

/**
 * Created with IntelliJ IDEA.
 * @Author: 从南到北
 * @Date: 03/18/2022/20:46
 * @Description: 下拉列表组件demo
 */
public class JComboBoxDemo {
    public static void main(String[] args) {
        //首先要创建一个容器,如果你继承了这个类,就不用了
        JFrame jFrame = new JFrame();

        //然后在容器中放东西
        //首先放一个面板吧
        JPanel jp = new JPanel();

        //然后再创建一个文字标签
        JLabel label = new JLabel("证件类型:");
        //开始创建下拉框
        JComboBox cmb = new JComboBox();
        //添加选项
        cmb.addItem("请选择");
        cmb.addItem("身份证");
        cmb.addItem("驾驶证");
        cmb.addItem("军官证");

        //然后将这些小东西都一个一个的都往里面添加
        jp.add(label);
        jp.add(cmb);
        jFrame.add(jp);

        //然后记得设置容器的大小
        jFrame.setBounds(300,200,300,400);
        //设置为可见
        jFrame.setVisible(true);
        //设置关闭方式
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
}

运行截图:

在这里插入图片描述
在这里插入图片描述

加入构造函数

package com.roadjava.student.view;


import javax.swing.*;
import java.awt.*;

public class Login1 extends JFrame {
    JPanel jp=new JPanel(); //创建面板
    JLabel label=new JLabel("五类资源:");
    JComboBox cmb=new JComboBox();//创建JCombox对象
    public Login1(){
        Container contentPane = getContentPane();   //这个就相当于,那个JFrame框架了
        cmb.addItem("1资源");
        cmb.addItem("2资源");
        cmb.addItem("3资源");
        cmb.addItem("4资源");
        cmb.addItem("5资源");
        jp.add(label);
        jp.add(cmb);
        contentPane.add(jp);

        setBounds(300,300,300,300);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
       new Login1();    //构造方法是会自动调用的
    }
}

在这里插入图片描述
添加事件:

JComboBox 能够响应 ItemEvent 事件和 ActionEvent 事件,
其中 ItemEvent触发的时机是当下拉列表框中的所选项更改时,ActionEvent 触发的时机是当用户在 JComboBox上直接输入选择项并回车时。
要处理这两个事件,需要创建相应的事件类并实现 ItemListener 接口和 ActionListener接口。

package com.roadjava.student.view;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class Main1 extends JFrame {

    JComboBox comboBox = new JComboBox();//创建一个下拉菜单

    public Main1(){
        super("标题,java");
//        setTitle("选项事件示例");
        Container contentPane = getContentPane();
        setBounds(200,200,222,222);

        for (int i=1;i<6;i++){  //通过循环添加选项
            comboBox.addItem("选项"+i);
        }

        //添加选项事件监听器
        comboBox.addItemListener(new ItemListener(){
             public void itemStateChanged(ItemEvent e) {
                 int stateChange = e.getStateChange();// 获得事件类型
                 String item = e.getItem().toString();// 获得触发此次事件的选项
                 if (stateChange == ItemEvent.SELECTED) {// 查看是否由选中选项触发
                     System.out.println("此次事件由      选中  选项“" + item + "”触发!");
                     // 查看是否由取消选中选项触发
                 } else if (stateChange == ItemEvent.DESELECTED) {
                     System.out.println("此次事件由  取消选中  选项“" + item + "”触发!");
                 } else {// 由其他原因触发
                     System.out.println("此次事件由其他原因触发!");
                 }
             }
        });

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        contentPane.add(comboBox);
    }


    public static void main(String[] args) {

    }
}

package swingDemo318;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: 从南到北
 * @Date: 03/18/2022/21:31
 * @Description:这个是添加了事件响应的
 */
public class JComboBoxDemo1 extends JFrame {

    //可以先把组件都创建好
    //创建下拉框组件菜单
    JComboBox comboBox = new JComboBox();
    //构造函数进行实现,然后主函数只是一个调用
    public JComboBoxDemo1(){
        super("这个是标题");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
        Container contentPane = getContentPane();
        setBounds(200,200,222,222);

        //通过循环添加选项
        for (int i=1;i<6;i++){
            comboBox.addItem("选项"+i);
        }

        //添加选项事件监听器
        comboBox.addItemListener(new ItemListener() {

            public void itemStateChanged(ItemEvent e) {
                int stateChange = e.getStateChange();// 获得事件类型
                
                String item = e.getItem().toString();// 获得触发此次事件的选项
                if (stateChange == ItemEvent.SELECTED) {// 查看是否由选中选项触发
                    System.out.println("此次事件由      选中  选项“" + item + "”触发!");
                    // 查看是否由取消选中选项触发
                } else if (stateChange == ItemEvent.DESELECTED) {
                    System.out.println("此次事件由  取消选中  选项“" + item + "”触发!");
                } else {// 由其他原因触发
                    System.out.println("此次事件由其他原因触发!");
                }
            }


        });



        contentPane.add(comboBox);
//            add(comboBox);
    }


    public static void main(String[] args) {
        new JComboBoxDemo1();
    }

}

参考链接:
http://c.biancheng.net/view/1225.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值