Они оба поднимаются один раз после отпускания кнопки мыши, и оба могут иметь всю информацию, доступную на JRadioButton, верно? Есть ли разница?
Java: в чем разница между ActionEvent и ItemEvent в JRadioButton?
Ответы (2)
Уведомления ItemListener
всякий раз, когда состояние кнопки изменяется, будь то пользователь, взаимодействующий с кнопкой, или программно (через setSelected
). ActionListener
, с другой стороны, вызываться, когда пользователь взаимодействует с кнопкой (но может быть смоделировано программно с помощью onClick
).
Обратите внимание, что пользователь, взаимодействующий с кнопкой, например, щелкающий или нажимающий пробел, также изменит состояние кнопки и вызовет событие элемента, а также событие действия. Как правило, вы захотите определить либо одно, либо другое, не прослушивайте одновременно события действия и события элемента на кнопке.
ItemEvent — это конкретное событие, указывающее, что состояние изменилось в компоненте, указанном itemStateChanged
в ItemListener. JRadioButton имеет два состояния: включено и выключено. ItemEvent также полезен, когда переключатель является частью группа кнопок.
Я думаю, вам следует использовать прослушиватель элементов, когда вас интересуют изменения состояния переключателя, и прослушиватель действий, когда вы хотите что-то сделать при нажатии переключателя.