【界面说明】

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

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. css3 动画效果实现

    前沿 在工作中,经常有一些需要切换的交互样式.如果直接在两种状态之间切换,就显得有点生硬.加上一些动画效果就会好很多. 示例1:点击的三角切换 实现过程 第一步实现这个三角形 用的svg 的多边形画法 ...

  2. 牛客OI赛制测试赛-序列-模拟

    哇这道题好坑啊,可能是我太菜了 题意就是叫把一个连续序列分成K组,使得每个组的和都相等 我最开始的想法是由于要分成K组,那我们知道,每组一定有sum(a[i])/k这样我们只需要每次当num==sum ...

  3. jsp获取传过来的值

    request.setCharacterEncoding("utf-8"); String credit=request.getParameter("credit&quo ...

  4. boost::asio之(一)简单客户端服务器回显功能

    客户端: // BoostDev.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #inc ...

  5. 【转】STM32和ARM的区别

    转自:http://www.cnblogs.com/nuc-boy/archive/2012/09/11/2680157.html 这个问题大概2009年的时候很多人就在问,请看09年的时候大家给出的 ...

  6. 微软开源的Trill是什么?

    微软开源的Trill是什么? https://www.cnblogs.com/CattaC/p/10143445.html 微软开源的Trill是什么? 以下是一篇15年的文章的译文:https:// ...

  7. PAT 1032 挖掘机技术哪家强

    https://pintia.cn/problem-sets/994805260223102976/problems/994805289432236032 为了用事实说明挖掘机技术到底哪家强,PAT组 ...

  8. Why yarn

    http://www.cnblogs.com/LeftNotEasy/archive/2012/02/18/why-yarn.html https://www.ibm.com/developerwor ...

  9. Linux下Vim使用备忘

    1.Insert键,决定是Insert模式还是Replace模式. 2.Esc键,退出编辑模式(Insert Or Replace). 3.:wq (ZZ) 保存并退出Vim. http://caib ...

  10. mongoDB的配置和使用

    如何启动mongodb? mongod --dbpath C:\appStore\mongodata //数据库地址 再开一个cmder窗口 进入C:\Program Files\MongoDB\Se ...