2013-05-18 2 views
1

, когда я нажимаю кнопку жалобы, каждый диалог ввода отображается дважды ... Я попытался удалить boxComplain.setSelected (true), и он работал (он отображался только один раз), но это сделало флажок после ввода ввода.JOptionPane.showInputDialog отображает дважды

+3

Это звучит, как вы зарегистрировали 'ActionListener' дважды – MadProgrammer

+0

не я добавил checkboxlistener к boxcomplain только один раз я уверен –

ответ

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

нормально плохо попробовать что –

+0

@ user1950784 добро пожаловать! –

+1

@ user1950784 или тест для SELECTED/DESELECTED внутри itemStateChanged – mKorbel

Смежные вопросы