【界面说明】

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

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. java注解XML

    用的是jdk自带的javax.xml.bind.JAXBContext将对象和xml字符串进行相互转换. 比较常用的几个: @XmlRootElement:根节点 @XmlAttribute:该属性作 ...

  2. 函数:this & return、break、continue、exit()

    this this:的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象在调用的时候才能决定,谁调用的就指向谁. 情景1:指向 ...

  3. CF 910 C. Minimum Sum

    链接 [http://codeforces.com/group/1EzrFFyOc0/contest/910/problem/C] 题意 给你n个字符串,每个字符串的字符是a~j,每个字符都可以是0~ ...

  4. #个人作业Week2——结对编程对象代码复审

    General 代码能够正确运行,能够正确生成指定数量的题目和答案,并且能够对给出的题目和答案文件进行比对,输出结果. 代码没有非常复杂的逻辑,比较容易理解,但是在缺少注释的情况下有部分代码需要较长时 ...

  5. 防止重复提交demo

    利用session防止重复提交 思路: 前端控制:在点击提交按钮后设置按钮不可用. 后台控制:利用session,在初次进入表单页面的时候前生成一个随机token,将token保存到session并返 ...

  6. git心得

    使用Git得到了以下体会: github在新的目录下添加新的文件 git init //在相应的目录下添加 git add //添加目录 git commit -m "first commi ...

  7. github使用心得和链接

    在本次使用github过程中,刚打开github主界面的时候,吓了一跳,满眼的英文加上各种没用过的命令,真是一个头两个大,废话不多说,下面我就说一下我在使用github过程中遇到的两个问题.: 问题一 ...

  8. Scapy的使用

    0.前言 最近现场测试项目时,突如其来需要伪造IGMP报文,骗取交换机相关组播流量,慌忙之下学习了Scapy的使用,以及相关快速学习的方法,在这里分享下. 1.Scapy库安装 github地址:ht ...

  9. iOS中单例创建时不严格造成的问题和解决方法

    这次项目中遇到了一个单例创建不严格造成了的问题.简单说来就是在有的地方使用了alloc创建了多个实例,当然如果严格按照接口的方法调用是不会有问题的,但是如果项目碰到有不太熟悉的人使用时在处理时就会出现 ...

  10. jQuery(五)

    wrap <script> //wrap:包装 //wrapAll:整体包装 //wrapInner:内部包装 //unwrap:删除包装(删除父级,不包括body) $(function ...