我在下面制作了这个示例来模拟多个 JCheckBox 创建及其动作侦听器。
int global=0;
//some code
JCheckBox[] checkBox = new JCheckBox[2];
for(int i = 0; i <=1; i++){
checkBox[i] = new JCheckBox(strings[i]);
panel.add(checkBox[i]);
checkBox[i].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent evt) {
if (evt.getStateChange() == ItemEvent.SELECTED){
JOptionPane.showConfirmDialog(null, "Message"+global);
}
}
});
global++;
}
我没有得到的是我的对话框输出始终是“消息 2”。在我的逻辑中,如果我为每个复选框声明一个 AddItemListener,我应该为每个复选框收到两个不同的对话框,例如“消息 1”和“消息 2”。我在这里做错了什么?请问这个怎么处理?
提前致谢