JCheckbox changes state twice when I show a dialog on statechange, how to fix?

I have a checkbox that, when the user selects it, should spawn a dialog with further info, and upon reaction from the user, do something. My code looks basically like this:

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);
    }
}

My problem now is, that my checkbox changes state always twice when I click on it. Это как-то связано с JOptionPane.showConfirmDialog, потому что, если я это закомментирую, он будет работать, как задумано. Разве я не осознаю чего-то простого, что меня должно волновать здесь, или что мне нужно сделать, чтобы получить желаемую реакцию? (Пользователь ставит флажок -> задается вопрос -> выбирает ДА ​​/ НЕТ / Отмена -> программа действует соответственно)

7
задан mKorbel 28 April 2011 в 13:03
поделиться