【界面说明】

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

  1. int state = e.getStateChange();
  1. ItemEvent.SELECTED
  1. ItemEvent.DESELECTED

 

  1. public class Demo extends JFrame {
  2. public Demo() {
  3. setBounds(100, 100, 300, 150);
  4. setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  5. Container c = getContentPane();
  6. c.setLayout(new GridLayout(1, 2));//网格布局
  7. JPanel leftPanel = new JPanel();//左面板
  8. c.add(leftPanel);
  9. JLabel label = new JLabel("选择要显示的组件");
  10. leftPanel.add(label);
  11. String items[] = {"全部显示", "复选框", "单选按钮"};
  12. JComboBox comboBox = new JComboBox(items);
  13. leftPanel.add(comboBox);
  14. JPanel rightPanel = new JPanel();//右面板,黑色边框
  15. rightPanel.setBorder(new LineBorder(Color.black));
  16. c.add(rightPanel);
  17. JCheckBox checkBox = new JCheckBox("复选框");
  18. JRadioButton radioButton = new JRadioButton("单选按钮");
  19. rightPanel.add(checkBox);
  20. rightPanel.add(radioButton);
  21. setVisible(true);
  22. //下拉列表框的选项监听,被选中的显示,未被选中的隐藏。
  23. comboBox.addItemListener(new ItemListener() {
  24. public void itemStateChanged(ItemEvent e) {
  25. String item = e.getItem().toString();//获取列表成员(字符串类)
  26. switch (item) {
  27. case "复选框":
  28. checkBox.setVisible(true);
  29. radioButton.setVisible(false);
  30. break;
  31. case "单选按钮":
  32. checkBox.setVisible(false);
  33. radioButton.setVisible(true);
  34. break;
  35. default:
  36. checkBox.setVisible(true);
  37. radioButton.setVisible(true);
  38. }
  39. }
  40. });
  41. ////复选框的选项监听
  42. // checkBox.addItemListener(new ItemListener() {
  43. // public void itemStateChanged(ItemEvent e) {
  44. // int state = e.getStateChange();
  45. // switch (state) {
  46. // case ItemEvent.SELECTED:
  47. // System.out.println("复选框被选中");
  48. // break;
  49. // case ItemEvent.DESELECTED:
  50. // System.out.println("复选框取消");
  51. // break;
  52. // }
  53. // }
  54. // });
  55. ////单选按钮的选项监听
  56. // radioButton.addItemListener(new ItemListener() {
  57. // public void itemStateChanged(ItemEvent e) {
  58. // int state = e.getStateChange();
  59. // switch (state) {
  60. // case ItemEvent.SELECTED:
  61. // System.out.println("单选按钮被选中");
  62. // break;
  63. // case ItemEvent.DESELECTED:
  64. // System.out.println("单选按钮取消");
  65. // break;
  66. // }
  67. // }
  68. // });
  69. //调用复选框与单选按钮共同的类方法,简略代码
  70. checkBox.addItemListener(new MyItemListener());
  71. radioButton.addItemListener(new MyItemListener());
  72. }
  73.  
  74. class MyItemListener implements ItemListener {
  75. public void itemStateChanged(ItemEvent e) {
  76. //强制转换为抽象按钮:AbstractButton是JButton、JCheckBox、JRadioButton的父类
  77. //由于不知道谁会被选中,所以使用它们的父类
  78. AbstractButton btn = (AbstractButton) e.getSource();//发生Event的源头
  79. int state = e.getStateChange();
  80. switch (state) {
  81. case ItemEvent.SELECTED:
  82. System.out.println(btn.getText() + "被选中");
  83. break;
  84. case ItemEvent.DESELECTED:
  85. System.out.println(btn.getText() + "取消");
  86. break;
  87. }
  88. }
  89. }
  90.  
  91. public static void main(String[] args) {
  92. new Demo();
  93. }
  94. }

选择监听事件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. hadoop-mapreduce-(1)-统计单词数量

    编写map程序 package com.cvicse.ump.hadoop.mapreduce.map; import java.io.IOException; import org.apache.h ...

  2. Linux内核总结博客 20135332武西垚

    http://www.cnblogs.com/wuxiyao/p/5220677.htmlhttp://www.cnblogs.com/wuxiyao/p/5247571.htmlhttp://www ...

  3. vuejs基础

    **### 数据与方法 // 我们的数据对象 var data = { a: 1 } // 该对象被加入到一个 Vue 实例中 var vm = new Vue({ data: data }) // ...

  4. 在WIN10打造成能运行Oracle的JDK的Linux

    1.开发WindowsFeature(程序)里的Linux扩展接口(其实从Windows2008发布前试用时,就发现悄悄藏着一个Unix接口选项). 2.在windows应用商店可以下载到Ubuntu ...

  5. Selenium自动化测试框架

    如下图所示,为公司搭建的基于Selenium+Ant+TestNG+Jenkins的持续集成的自动化测试框架. Selenium: Page Object Model+Data Driver(Exce ...

  6. 使用非服务器磁盘(MBROnly)安装ESXi时的方法.

    From ESXi 5.0, if you install ESXi to a empty hard disk, the target disk will be prepared with GPT-b ...

  7. 转《Angular4项目部署到服务器上刷新404解决办法》

    刚遇到Angular4项目npm run build 后部署到服务器可以访问,但是刷新页面会出现404的错误!转载一大神的操作 解决angular2页面刷新后报404错误办法: 配置app.modul ...

  8. Linux基础学习(5)--文本编辑器Vim

    第五章——文本编辑器Vim 一. Vim常用操作 1.Vim简介:              Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立.编辑. ...

  9. oracle小知识点

    一 . procedure和function: procedure和function在语法上几乎完全一样,使用上却有小小的差别, procedure可以单独的调用 在命令行直接exec pro_xxx ...

  10. codeforces 1051 D. Bicolorings (DP)

    D. Bicolorings time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...