Может ли NetBeans 8.0 автоматически изменять автоматически созданный Swing-код?

#java #swing #netbeans #mouselistener #jradiobutton

#java #swing #netbeans #mouselistener #jradiobutton

Вопрос:

У меня есть две радиокнопки, и это код, который продолжает настраиваться для них:

 jRadioButton6.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            jRadioButton6MouseClicked(evt);
        }
    }
  

Я изменил в текстовом редакторе метод для этого:

    jRadioButton6.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent e) {
            jRadioButton6MouseClicked();

        }
    }
  

Похоже, внесение изменений в интерфейс вызывает такое поведение.

Комментарии:

1. Вы использовали Netbeans для его изменения или другой текстовый редактор? Вы обновили все в Netbeans, чтобы было известно, что файл изменился, или перезапустили вещь / перекомпилировали ваш код?

2. У меня есть резервная версия моего кода, которая содержит изменения, и я использую Beyond Compare для возврата к работоспособной версии или, в данном случае, для восстановления методов. Резервная версия находится в другой папке, и я сохранил изменения, перезапустил NedBeans, иногда это работает для запуска кода, я не смог понять, что вызывает это.

3. Похоже, что изменение интерфейса запускает редактирование.

4. Не добавляйте MouseListener , но — используя java 8: jRadioButton6.addItemListener(e -> jRadioButtonMouseClicked()); . Возможно, для этого не нужно создавать шаблоны.

5. @Alexandru Cimpanu используйте ActionListener или ItemListener для JRadioButton, не добавляя ничего в MouseListener

Ответ №1:

Я пытался изменить автоматически сгенерированный код. В начале кода даже есть предупреждение:

     /**
    * This method is called from within the constructor to initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is always
    * regenerated by the Form Editor.
    */
  

Итак, в режиме конструктора я должен был выбрать JRadioButton, а в разделе «События» я должен был выбрать itemStateChanged и установить функцию, которую я хотел вызвать для этого события.

Я сравнил свою ошибку слева и решение справа: Сравнить