Может кто-нибудь объяснить мне, почему этот кусок кода выдается на консоль, когда вы наводите мышь на флажок? Что такое событие «изменения»?JCheckbox change listener получает уведомление о событиях
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame();
JCheckBox c = new JCheckBox("Print HELLO");
c.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
System.out.println("HELLO");
}
});
f.getContentPane().add(c);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}
Примечание: Я не использовать слушатель действия, потому что в моей программе я хочу быть в состоянии сделать:
checkBox.setSelected(boolean)
и есть мой слушатель уведомил, что не может быть сделано с action слушатель. Итак, есть ли способ отключить это событие «мышь» или другим способом, которым я могу реализовать свой слушатель?
Странно, я подумал, что использование 'setSelected' вызовет прослушиватели изменений. Я должен думать о чем-то другом. – jeef3
Если я запустил это на Java 5 на Mac OSX, я не наводил указатель мыши на события. – banjollity
@ jeef3: setВыбранные события смены триггера DOES. Вот почему я его использую. Дело в том, что события изменения также срабатывают от мыши над движениями :) –