Существует разница между нажатием кнопки (которая вызывает ActionEvent
) и кнопкой, выбранной (которая вызывает ItemEvent
).По умолчанию JButton
поддерживается javax.swing.DefaultButtonModel
.Если вы посмотрите на методы setPressed
и setSelected
в модели кнопок по умолчанию, вы увидите код, который запускает различные события.
Так что, если вы программно вызываете JButton.setSelected
, ваш слушатель элемента будет запущен,Если вы нажмете кнопку, вы получите только событие действия.
Обратите также внимание, что с JButton
(в отличие, скажем, JToggleButton
) вы, вероятно, не увидите много визуально, когда оновыбран.