Java: В чем разница между ActionEvent и ItemEvent на JRadioButton? - PullRequest
5 голосов
/ 17 августа 2010

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

Ответы [ 2 ]

7 голосов
/ 17 августа 2010

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

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

0 голосов
/ 17 августа 2010

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

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

...