如何知道哪个JCheckBox发送了ItemEvent

Roh*_*wal 1 java checkbox events swing

我的Swing项目中有很多复选框.对于每个复选框,选择/取消选择要执行的特定查询.我知道获取复选框来源的一种方法是

public void itemStateChanged(ItemEvent e)  {
if(e.getSource=="checkbox object")
{ 
some code goes here; 
}
}
Run Code Online (Sandbox Code Playgroud)

如果我有少量的复选框,这个解决方案是最好的,但如果我有很多复选框,那么我必须编写冗长的代码.有没有办法在单个命令中找到导致事件的复选框的对象?

vel*_*s4j 5

你可以这样选中复选框

JCheckBox checkBox1 = new JCheckBox("Check1");
 JCheckBox checkBox2 = new JCheckBox("Check2");
 checkBox1.setName("Check1");
 checkBox2.setName("Check2");
 ItemListener listener = new ItemListener() {
    @Override
    public void itemStateChanged(ItemEvent e) {
        JCheckBox check = (JCheckBox)e.getSource();
         String name = check.getName();
         System.out.println(name);
    }
};
checkBox1.addItemListener(listener);
checkBox2.addItemListener(listener);
Run Code Online (Sandbox Code Playgroud)