itemStateChanged на JButton - PullRequest
       0

itemStateChanged на JButton

3 голосов
/ 14 сентября 2010

Я прочитал, что JButton реализует ItemSelectable, и в документации он имеет метод addItemListener, поэтому я могу утверждать, что он может генерировать ItemEvent ... но когда я регистрируюсь с JButton (но также для JMenuItem) этого интерфейса событие не вызывается?

Почему?

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

Что правда?

1 Ответ

3 голосов
/ 14 сентября 2010

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

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

Обратите также внимание, что с JButton (в отличие, скажем, JToggleButton) вы, вероятно, не увидите много визуально, когда оновыбран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...