Java ItemEvent类(选项事件)

简介

当修改下拉菜单中的选中项时,将发出选项事件。ItemEvent类负责捕获选项事件,可以通过为组件添加实现了ItemListener接口的监听器类来处理相应的选项事件。

ItemListener接口只有一个抽象方法,在修改一次下拉菜单选中项的过程中,该方法将被触发两次,一次是由取消原来选中项的选中状态触发的,另一次是由选中新选项触发的。

注意:选中项未发生变化时并不会触发选项事件,例如:将选中项由“选项1”改为“选项1”时并不会触发选项事件。

ItemListener接口的具体定义如下所示:

public interface ItemListener extends EventListener {
    void itemStateChanged(ItemEvent e);
}

常用方法

getItem():用来获得触发此次事件的选项,该方法的返回值为 Object 型。

getStateChange():用来获得此次事件的类型,即是由取消原来选中项的选中状态触发的,还是由选中新选项触发的,该方法的返回值为 int 型,可以通过 ItemEvent 类中如下静态常量判断此次事件的具体类型:

SELECTED:代表此次事件是由选中 新选项触发的。

DESELECTED:代表此次事件是由取消原来选中项的选中状态触发的。

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

import javax.swing.*;

public class t3 extends JFrame{
	
	private static final long serialVersionUID = 1L; 
	
	public t3() {
		setTitle("Hern");
		setBounds(400, 400, 400, 400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		FlowLayout flowLayout = new FlowLayout();
		setLayout(flowLayout);//设置布局
		
		JComboBox<String> comboBox = new JComboBox<>();// 创建一个下拉菜单
		comboBox.setPreferredSize(new Dimension(100, 20));//设置下拉菜单的宽度、高度
		
		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("此次事件由其他原因触发!");
				}
			}
		});
		add(comboBox);
		
		setVisible(true);
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		t3 test = new t3();

	}

}

猜你喜欢

转载自blog.csdn.net/qq_36761831/article/details/81570545