博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
选择监听事件ItemListener(是否被选择)
阅读量:4309 次
发布时间:2019-06-06

本文共 3662 字,大约阅读时间需要 12 分钟。

【界面说明】

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

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();    }}

 

转载于:https://www.cnblogs.com/xixixing/p/9502797.html

你可能感兴趣的文章
vnpy通过jqdatasdk初始化实时数据及历史数据下载
查看>>
设计模式19_状态
查看>>
设计模式20_观察者
查看>>
vnpy学习10_常见坑02
查看>>
用时三个月,终于把所有的Python库全部整理了!拿去别客气!
查看>>
pd.stats.ols.MovingOLS以及替代
查看>>
vnpy学习11_增加测试评估指标
查看>>
资金流入流出计算方法
查看>>
海龟交易法则07_如何衡量风险
查看>>
海龟交易法则08_风险与资金管理
查看>>
海龟交易法则09_海龟式积木
查看>>
海龟交易法则10_通用积木
查看>>
海龟交易法则14_掌控心魔
查看>>
海龟交易法则16_附原版海龟交易法则
查看>>
克罗谈投资策略01_期货交易中的墨菲法则
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>
克罗谈投资策略04_感觉与现实
查看>>
通向财务自由之路01_导读
查看>>
通向财务自由之路02_成功的决定因素:你
查看>>