Swing JCheckbox: фокус с настраиваемыми значками

я использовал

chkBox.setIcon();
chkBox.setSelectedIcon();
chkBox.setDisabledIcon();
chkBox.setDisabledSelectedIcon();

чтобы установить пользовательские значки для моего JCheckbox. Но теперь, если фокус перемещается на один из флажков, вокруг них не отображается граница или что-либо еще, что говорит о том, что флажок имеет фокус.

Кто-нибудь знает, как дать отзыв, когда настраиваемый флажок имеет фокус?

Спасибо


person haferblues    schedule 24.09.2012    source источник
comment
может воспроизвести его в нимбе (где только иконка, а не текст имеет украшение фокуса). Похоже, вам придется делать это самостоятельно, что не слишком удивительно при настройке значений по умолчанию :-) Любопытно, зачем вам пользовательские значки? Вы можете запутать своих пользователей.   -  person kleopatra    schedule 24.09.2012


Ответы (2)


Ваша проблема определенно зависит от Look and Feel (L&F), который вы используете в своем приложении (если вы его не настроите - я думаю, вы используете MetalLookAndFeel?).

В любом случае, решений может быть много:

  1. Убедитесь, что ваш JCheckBox на самом деле focusable и focus painted. Имейте в виду, что некоторые L&F могут отключить прорисовку фокуса - проверьте метод checkBox.setFocusPainted().

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

  3. Если вы хотите нарисовать индикацию фокуса прямо на самом значке проверки, вы можете создать свою собственную реализацию на основе значков, которая рисует ее вместе с текущим состоянием проверки. Я разместил собственный пример значка в другой теме о значке, зависящем от состояния, если вы хотите увидеть реальный пример.

Могут быть и другие решения, но они зависят от используемого L&F...

person Mikle Garin    schedule 24.09.2012

Вы можете использовать эту готовую альтернативу флажку: http://codetoearn.blogspot.com/2013/01/swing-fantasy-checkbox-with-customized.html

person ehsun7b    schedule 18.01.2013