当我按下抱怨框时,每个输入对话框都显示两次...我尝试删除boxComplain.setSelected(true)并且它工作(它只显示一次)但是在我输入输入后使复选框移动
class CheckBoxListener implements ItemListener {
public void itemStateChanged(ItemEvent event) {
if(boxComplain.isSelected())
{
ab=JOptionPane.showInputDialog("Enter Reason of Complain: ");
ac=JOptionPane.showInputDialog("Enter What The Complain is About: ");
label4.setText("Complain request");
boxComplain.setSelected(true);
}
}
}
答案 0 :(得分:3)
ItemListener被调用两次 - 一次更改原始选择时,第二次注册新选择时。请考虑使用ActionListener。
另一个技巧是删除并添加ItemListener:
public void itemStateChanged(ItemEvent event) {
if(boxComplain.isSelected()) {
ab=JOptionPane.showInputDialog("Enter Reason of Complain: ");
ac=JOptionPane.showInputDialog("Enter What The Complain is About: ");
label4.setText("Complain request");
boxComplain.removeItemListener(this);
boxComplain.setSelected(true);
boxComplain.addItemListener(this);
}
}