当我显示有关statechange的对话框时,JCheckbox会两次更改状态,该如何解决?
|
我有一个复选框,当用户选择它时,应生成一个包含更多信息的对话框,并在用户做出反应后做一些事情。我的代码基本上是这样的:
private void onItemStateChanged(java.awt.event.ItemEvent evt) {
System.out.println(\"STATE CHANGED!\");//TODO debug code
if (evt.getStateChange() == ItemEvent.SELECTED) {
int returnVal = JOptionPane.showConfirmDialog(this, \"blablatext\");
if (returnVal == JOptionPane.OK_OPTION) {
this.field1TF.setText(\"\");
this.field1TF.setEditable(false);
this.field2TF.setText(\"\");
this.filed2TF.setEditable(false);
}else if(returnVal == JOptionPane.NO_OPTION){
this.field1TF.setText(\"\");
this.field1TF.setEditable(false);
this.field2TF.setText(\"\");
this.field2TF.setEditable(false);
}
} else if(evt.getStateChange() == ItemEvent.DESELECTED){
this.field1TF.setEditable(true);
this.field2TF.setEditable(true);
}
}
现在的问题是,当我单击复选框时,它的状态始终更改两次。
它在某种程度上与JOptionPane.showConfirmDialog有关,因为如果我将其注释掉,它将按预期工作。
我是否不知道我应该在这里简单关注的事情,或者我该怎么做才能获得想要的反应? (用户单击复选框->被问到一个问题->选择是/否/取消->程序相应地动作)
没有找到相关结果
已邀请:
3 个回复
泪琉踞檄
烫珊
细瑞