Может кто-нибудь объяснить мне, почему этот фрагмент кода выводится на консоль, когда вы наводите указатель мыши на флажок? Какое событие «изменения» происходит?
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)
и уведомить моего слушателя, что невозможно сделать с помощью прослушивателя действий. Итак, есть ли способ отключить это событие «наведение мыши» или другой способ, которым я могу реализовать свой слушатель?
setSelected
вызовет прослушивание изменений. Я должен думать о чем-то другом. - person jeef3   schedule 20.08.2009false
и другие ответы о прослушивании различных событий, но очевидно, что здесь есть некоторая разница между значениями по умолчанию для Mac и Windows. Сегодня я столкнулся с этой разницей, потому что компьютер моего клиента - Windows, и в нашем приложении произошло что-то, чего я не ожидал, когда его курсор переместился на флажок. - person Jason   schedule 28.09.2020