Доступ к значкам значения по умолчанию стиля?

Безопасность. Предоставьте доступ на представлении пользователям, которые должны быть в состоянии видеть столбцы, возвращенные из него.

8
задан Jay R. 2 November 2009 в 21:10
поделиться

2 ответа

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

Простая выгрузка ключей из UIManager.getLookAndFeelDefaults (). Keys () дает следующее, если ключ содержит CheckBox:

CheckBox.foreground
CheckBox.border
CheckBox.totalInsets
CheckBox.background
CheckBox.disabledText
CheckBox.margin
CheckBox.rollover
CheckBox.font
CheckBox.gradient
CheckBox.focus
CheckBox.icon
CheckBox.focusInputMap

Прочитав ответ akf , я начал копаться код UIManager в пакетах plaf.synth и обнаруженные вызовы, которые по существу делегируют null disableCheckedIcon классам внешнего вида, чтобы попытаться преобразовать стандартный .icon в версию, выделенную серым цветом. В итоге я получил следующее:

Icon checkedIcon = UIManager.getIcon("CheckBox.icon");
Icon dsiabledCheckedIcon = 
   UIManager.getLookAndFeel().
      getDisabledSelectedIcon(new JCheckBox(), checkedIcon);
8
ответ дан 5 December 2019 в 15:24
поделиться

Просматривая код для AbstractButton , выясняется, что disabledSelectedIcon является производным от selectedIcon , если он не указан на AbstractButton (или в данном случае JCheckBox) через setDisabledSelectedIcon . В этом случае вызов UIManager.getIcon ("...") не вернет искомый объект.

РЕДАКТИРОВАТЬ:

Обратите внимание, что JCheckBox имеет поле значка как определено в API AbstractButton , так же как JButton может иметь значок. Это изображение, которое отображается рядом с текстом и отдельно от значка «отмечен» или «не отмечен», на который вы, возможно, имеете в виду.

Значок проверки / снятия флажка обрабатывается одним классом, найдено с помощью UIManager.getObject ('CheckBox.icon') . Это подкласс Icon , который обрабатывает как отмеченное, так и непроверенное состояние. Вы можете увидеть примеры этого в различных классах [L&F name] IconFactory .

3
ответ дан 5 December 2019 в 15:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: