Java: в чем разница между ActionEvent и ItemEvent в JRadioButton?

Они оба поднимаются один раз после отпускания кнопки мыши, и оба могут иметь всю информацию, доступную на JRadioButton, верно? Есть ли разница?


person iceburn    schedule 17.08.2010    source источник


Ответы (2)


Уведомления ItemListener всякий раз, когда состояние кнопки изменяется, будь то пользователь, взаимодействующий с кнопкой, или программно (через setSelected). ActionListener, с другой стороны, вызываться, когда пользователь взаимодействует с кнопкой (но может быть смоделировано программно с помощью onClick).

Обратите внимание, что пользователь, взаимодействующий с кнопкой, например, щелкающий или нажимающий пробел, также изменит состояние кнопки и вызовет событие элемента, а также событие действия. Как правило, вы захотите определить либо одно, либо другое, не прослушивайте одновременно события действия и события элемента на кнопке.

person krock    schedule 17.08.2010
comment
понятно! ItemListener - пользовательская программа ИЛИ; ActionListener - пользователь. Благодарность! - person n611x007; 25.11.2012

ItemEvent — это конкретное событие, указывающее, что состояние изменилось в компоненте, указанном itemStateChanged в ItemListener. JRadioButton имеет два состояния: включено и выключено. ItemEvent также полезен, когда переключатель является частью группа кнопок.

Я думаю, вам следует использовать прослушиватель элементов, когда вас интересуют изменения состояния переключателя, и прослушиватель действий, когда вы хотите что-то сделать при нажатии переключателя.

person naikus    schedule 17.08.2010