У меня есть флажок, который, когда пользователь выбирает его, должен вызывать диалог с дополнительной информацией, и по реакции пользователя что-то делать. Мой код выглядит в основном так:
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, потому что, если я это закомментирую, он будет работать как задумано.
Не знаю ли я о чем-то простом, что меня должно здесь волновать, или что мне нужно сделать, чтобы получить желаемую реакцию? (Пользователь нажимает кнопку -> задается вопрос -> выбирает ДА / НЕТ / Отмена -> программа действует соответственно)