首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道哪个JCheckBox发送了一个ItemEvent

如何知道哪个JCheckBox发送了一个ItemEvent
EN

Stack Overflow用户
提问于 2012-03-01 13:26:32
回答 3查看 221关注 0票数 2

所以我有

  • 一个CheckBoxList类(扩展JPanel),其中包含一个JCheckBox对象列表 公共类CheckBoxList扩展JPanel {列表复选框;.}
  • 一个带有MyChart对象的JFreeChart类。每个JCheckBox代表一个选择:如果选中,则在图表上显示数据集;如果未选中,则隐藏该数据集。因此,对于每个JCheckBox,都有一个配对的数据集。

我的想法是,MyChart将自己注册为每个JCheckBox的侦听器(因此它实现了ItemStateChanged(ItemEvent)方法)。但是,如何识别哪个JCheckBox发送了ItemEvent,从而隐藏或显示了适当的数据集?

EN

回答 3

Stack Overflow用户

发布于 2012-03-01 13:32:34

可以为每个监听器设置不同的侦听器,也可以检查事件源。

代码语言:javascript
复制
Object source = event.getSource() // -- I think this is the right syntax
if (source instanceof JCheckBox) {
    JCheckBox cb = (JCheckBox)source;
    if (cb.getText().equals("Checkbox 1") {

    } else if (cb.getText().equals("Checkbox 2")){

    }
}

或者,您可以重写每个复选框的JCheckBox类,如果是每个复选框,只需测试源。

票数 2
EN

Stack Overflow用户

发布于 2012-03-01 13:32:53

下面是Java教程的建议:检查事件的来源。

票数 2
EN

Stack Overflow用户

发布于 2012-03-01 13:34:55

您必须将侦听器添加到每个菜单项。

代码语言:javascript
复制
JCheckBoxMenuItem menuItem1 = new JCheckBoxMenuItem("Item 1");
menuItem1.addActionListener(listener);

在每个菜单项上设置action命令将允许您在ActionListener中打开action命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9517057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档