#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 и установить функцию, которую я хотел вызвать для этого события.