【界面说明】

下拉列表框,选谁谁显示。复选框与单选按钮,输出被选与否的状态。知识点主要代码为:

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(是否被选择)的更多相关文章

  1. datePicker 及 timePicker 监听事件 获取用户选择 年月日分秒信息

    public class MainActivity extends AppCompatActivity { private TimePicker timePicker; private DatePic ...

  2. JAVA JComboBox的监听事件(ActionListener、ItemListener)

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   参考资料: http://263229365.iteye.com/blog/1040329 https://www.ja ...

  3. Eclipse插件开发中的选择监听机制(Selection Provider-Listener)

    Eclipse插件开发中的选择监听机制(Selection Provider-Listener) 监听机制是eclipse插件开发或rcp应用开发中经常使用的技术,比方点击TableViewer或Tr ...

  4. jquery实现拖拽以及jquery监听事件的写法

    很久之前写了一个jquery3D楼盘在线选择,这么一个插件,插件很简单,因为后期项目中没有实际用到,因此,有些地方不是很完善,后面也懒得再进行修改维护了.最近放到github上面,但是也少有人问津及s ...

  5. ionicModal中的监听事件

    //添加监听事件angular.module('MyApp').directive('gotTapped', ['$ionicGesture', function($ionicGesture) { r ...

  6. 一步一步学android之事件篇——单选按钮监听事件

    在平常使用软件的时候,我们经常会碰见一些选择题,例如选择性别的时候,在男和女之间选,前面说过这个情况要用RadioGroup组件,那么点击了之后我们该怎么获取到选择的那个值呢,这就是今天要说的OnCh ...

  7. 横向滑动的listview和其中用到的触摸监听事件详解

    一.首先把横向的listview的代码放上来 HorizontalListView: package com.common.cklibrary.utils.myview; import java.ut ...

  8. UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法

    基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...

  9. jquery中,使用append增加新元素时,新增元素的绑定监听事件失效的解决办法

    $("outerSelector").on("eventType","innerSelector",function(){}); 举例:如果 ...

随机推荐

  1. B. Views Matter

    链接 [http://codeforces.com/contest/1061/problem/B] 题意 问你最多去掉多少块使得从上和右看,投影图不变 分析 注意细节,尤其第一列 代码 #includ ...

  2. M2阶段事后总结

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?我们的主要任务是将35w+个符合条件的网页,问答,文章放入数据库:爬取功能定义为以下几种:通用型爬取 ...

  3. 07-java学习-方法重载-idea集成开发工具学习-项目-模块-包

    方法重载的概念? 方法重载的好处? 集成开发工具idea的学习 下载 安装 设置 建项目 导入项目 建模块 导入模块 建包 复制粘贴包 建类 复制粘贴类 运行 调试

  4. Vim列模式(块选择)输入

    https://www.ibm.com/developerworks/cn/linux/l-cn-vimcolumn/ https://www.zhihu.com/question/19968224 ...

  5. Disabling Chrome cache for website development

    https://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development https://s ...

  6. CS、IP和PC寄存器

    CS寄存器和IP寄存器: 首先强调一下,这两个寄存器非常非常重要,CS的全拼为“Code segment”,即代码段寄存器,对应于内存中的存放代码的内存区域,用来存放内存代码段区域的入口地址(段基址) ...

  7. vCenter 异常关机后无法开启ESXi虚拟机的处理.

    春节假期一个插排掉电了, 然后vcenter不幸自动关机了. 对虚拟机进行开机时错误提示 前期更改过administrator的密码, 但是忘记同步修改sqlserver启动时的用户了(这里使用adm ...

  8. WINFORM 多条件动态查询 通用代码的设计与实现

    经常碰到多条件联合查询的问题,以前的习惯认为很简单总会从头开始设计布局代码,往往一个查询面要费上老半天的功夫,而效果也不咋地.     前段时间做了个相对通用的多条件动态查询面,复用起来还是挺方便的, ...

  9. python之文件读写和异常处理

    # 文件读取.写入和异常处理操作举例 # date:2017-07-17 file_name = "D:/file_demo.txt" with open(file_name, ' ...

  10. Linux 4.21包含对AMD Rome处理器中新的Zen 2架构重要的新优化

    导读 Phoronix的Linux爱好者报告说,Linux 4.21里包含对AMD Rome处理器中新的Zen 2架构重要的新优化.AMD新推出的7nm EPYC Rome芯片带来了一种全新的独特架构 ...