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