Управление ImageIcon JToggleButton при нажатии / выборе - PullRequest
4 голосов
/ 31 декабря 2010

Я (очень чудесным образом) ответил на свой вопрос, когда писал этот вопрос, но это была такая находка, которой я хотел поделиться со всеми.Я понимаю, что это должны быть настоящие "вопросы", но это была монументальная находка для меня.Однако ниже есть «вопрос», на который можно ответить.

Я создал собственный класс, который расширяет JToggleButton.В этом классе я удаляю все MouseListeners по умолчанию, поэтому он будет принимать действия мыши только тогда, когда я считаю объект готовым.У меня была проблема с манипулированием JToggleButtons ImageIcon (устанавливается с помощью setIcon ()).Если кнопка не отображалась на экране (не видна из-за JScrollPane), когда я сказал, что кнопка должна быть выбрана, ImageIcon исчезнет.Точно так же, если бы я изменил ImageIcon, когда кнопка была выбрана, ImageIcon также исчезнет.

Оказывается, что в моем пользовательском MouseListener я использовал getModel.setSelected (true) вместо getModel.setPressed (true).Очевидно, у меня нет четкого понимания разницы между выбранным и нажатым, но достаточно сказать, что это решило мою проблему.Поэтому мой «вопрос» будет разъяснением этих двух терминов.

Подводя итог, не используйте setSelected () на кнопке, когда вы собираетесь использовать setPressed ().Какая боль отследить это!Я искренне надеюсь, что это поможет кому-то еще.Адрес электронной почты действителен, но ловец спама.

1 Ответ

2 голосов
/ 01 января 2011

Хорошо, я снова нашел свой ответ, поэтому решил поделиться и закрыть этот вопрос.Кнопка «выбрана», когда у нее есть флажок / значок радио.Кнопка «нажата», когда кнопка нажата.JToggleButtons, кажется, используют оба атрибута в комбинации, чтобы правильно «щелкнуть и нажать» кнопку.

Причина, по которой исчезли ImageIcons, заключалась в том, что я случайно смешал setPressedIcon () / setPressed () и setSelectedIcon () / setSelected ().Поскольку я запутал терминологию и не распознал разницу, я был непоследователен в своем использовании.

...