选择监听事件ItemListener(是否被选择)
【界面说明】
下拉列表框,选谁谁显示。复选框与单选按钮,输出被选与否的状态。知识点主要代码为:
int state = e.getStateChange();
ItemEvent.SELECTED
ItemEvent.DESELECTED

public class Demo extends JFrame {
public Demo() {
setBounds(100, 100, 300, 150);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new GridLayout(1, 2));//网格布局
JPanel leftPanel = new JPanel();//左面板
c.add(leftPanel);
JLabel label = new JLabel("选择要显示的组件");
leftPanel.add(label);
String items[] = {"全部显示", "复选框", "单选按钮"};
JComboBox comboBox = new JComboBox(items);
leftPanel.add(comboBox);
JPanel rightPanel = new JPanel();//右面板,黑色边框
rightPanel.setBorder(new LineBorder(Color.black));
c.add(rightPanel);
JCheckBox checkBox = new JCheckBox("复选框");
JRadioButton radioButton = new JRadioButton("单选按钮");
rightPanel.add(checkBox);
rightPanel.add(radioButton);
setVisible(true);
//下拉列表框的选项监听,被选中的显示,未被选中的隐藏。
comboBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
String item = e.getItem().toString();//获取列表成员(字符串类)
switch (item) {
case "复选框":
checkBox.setVisible(true);
radioButton.setVisible(false);
break;
case "单选按钮":
checkBox.setVisible(false);
radioButton.setVisible(true);
break;
default:
checkBox.setVisible(true);
radioButton.setVisible(true);
}
}
});
////复选框的选项监听
// checkBox.addItemListener(new ItemListener() {
// public void itemStateChanged(ItemEvent e) {
// int state = e.getStateChange();
// switch (state) {
// case ItemEvent.SELECTED:
// System.out.println("复选框被选中");
// break;
// case ItemEvent.DESELECTED:
// System.out.println("复选框取消");
// break;
// }
// }
// });
////单选按钮的选项监听
// radioButton.addItemListener(new ItemListener() {
// public void itemStateChanged(ItemEvent e) {
// int state = e.getStateChange();
// switch (state) {
// case ItemEvent.SELECTED:
// System.out.println("单选按钮被选中");
// break;
// case ItemEvent.DESELECTED:
// System.out.println("单选按钮取消");
// break;
// }
// }
// });
//调用复选框与单选按钮共同的类方法,简略代码
checkBox.addItemListener(new MyItemListener());
radioButton.addItemListener(new MyItemListener());
}
class MyItemListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
//强制转换为抽象按钮:AbstractButton是JButton、JCheckBox、JRadioButton的父类
//由于不知道谁会被选中,所以使用它们的父类
AbstractButton btn = (AbstractButton) e.getSource();//发生Event的源头
int state = e.getStateChange();
switch (state) {
case ItemEvent.SELECTED:
System.out.println(btn.getText() + "被选中");
break;
case ItemEvent.DESELECTED:
System.out.println(btn.getText() + "取消");
break;
}
}
}
public static void main(String[] args) {
new Demo();
}
}
选择监听事件ItemListener(是否被选择)的更多相关文章
- datePicker 及 timePicker 监听事件 获取用户选择 年月日分秒信息
public class MainActivity extends AppCompatActivity { private TimePicker timePicker; private DatePic ...
- JAVA JComboBox的监听事件(ActionListener、ItemListener)
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 参考资料: http://263229365.iteye.com/blog/1040329 https://www.ja ...
- Eclipse插件开发中的选择监听机制(Selection Provider-Listener)
Eclipse插件开发中的选择监听机制(Selection Provider-Listener) 监听机制是eclipse插件开发或rcp应用开发中经常使用的技术,比方点击TableViewer或Tr ...
- jquery实现拖拽以及jquery监听事件的写法
很久之前写了一个jquery3D楼盘在线选择,这么一个插件,插件很简单,因为后期项目中没有实际用到,因此,有些地方不是很完善,后面也懒得再进行修改维护了.最近放到github上面,但是也少有人问津及s ...
- ionicModal中的监听事件
//添加监听事件angular.module('MyApp').directive('gotTapped', ['$ionicGesture', function($ionicGesture) { r ...
- 一步一步学android之事件篇——单选按钮监听事件
在平常使用软件的时候,我们经常会碰见一些选择题,例如选择性别的时候,在男和女之间选,前面说过这个情况要用RadioGroup组件,那么点击了之后我们该怎么获取到选择的那个值呢,这就是今天要说的OnCh ...
- 横向滑动的listview和其中用到的触摸监听事件详解
一.首先把横向的listview的代码放上来 HorizontalListView: package com.common.cklibrary.utils.myview; import java.ut ...
- UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法
基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...
- jquery中,使用append增加新元素时,新增元素的绑定监听事件失效的解决办法
$("outerSelector").on("eventType","innerSelector",function(){}); 举例:如果 ...
随机推荐
- ecna2017-Game of Throwns
这题就是给你一个标号为0-n-1的环,然后给你M个操作,操作有两种,一种是直接给一个数,这数的正负代表我当前向前(向后)仍了xx个位置的球,或者给你一个撤销操作表示为 undo m,表示撤销最近的M个 ...
- 这是一个数学题牛客训练赛E
题目描述 https://www.nowcoder.net/acm/contest/78/E 已知有一个n+1个数的数列,对于给定的A0和An ,当i满足当1<=i<=n-1时有 ...
- 个人博客作业_week14
M1/M2阶段总结 我在M1阶段负责后端代码的开发,以及协助PM,在M2阶段负责PM,在为期将近一学期的团队软件开发过程中,我深刻体会到了团队协作的重要性,以及合理分配任务的重要性,没有一个好的时间规 ...
- 第三个sprint冲刺第二阶段
内测版:
- 续摄影O2O篇
项目名:摄影O2O 工具:Eclipse ,adt,jdk1.8,MySQL 步骤:(一) 1.导入beauty项目到一个adt中,然后创建模拟器,运行(客户端) 2.导入SocketSever项目到 ...
- EL表达式和JSTL标签库
expresion language表达式语言 可以输出表达式的值.跟jsp的表达式脚本一样.计算表达式的值后输出. EL表达式出现的目的是为了使JSP写起来更加简单,让jsp的代码更佳简化. 1. ...
- 【转】进程同步之信号量机制(pv操作)及三个经典同步问题
原文地址:http://blog.csdn.net/speedme/article/details/17597373 上篇博客中(进程同步之临界区域问题及Peterson算法),我们对临界区,临界资源 ...
- Comparer Under Centos 7
Kompare 效果还行.
- add (db.collection.add)添加数据
db.collection('cheshi').add({ data: { cheshi:4, } }).then((res) => { console.log(res) })
- hive外部表
创建外部表.数据从HDFS获取 只是建立了链接,hdfs中的数据丢失,表中数据也丢失;hdfs数据增加,表中数据也增加 上传文件 创建外部表 删除文件 执行查询语句,发现少了