Look and Feel без жестко закодированных значений

Сейчас я настроил LaF следующим образом: UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); Он отлично работает и выглядит так, как я хочу. К сожалению, в какой-то момент в моем коде мне приходится устанавливать некоторые значки вручную, потому что их автоматическая установка не работает должным образом (устанавливает неправильный значок). В настоящее время у меня есть:

if (node.getAllowsChildren()) {
    setIcon(UIManager.getIcon("FileView.directoryIcon"));
}else {
    setIcon(UIManager.getIcon("FileView.fileIcon"));
}

но он не использует значки LaF, и я понятия не имею, как найти значки, похожие на LaF. Итак, мой вопрос: есть ли простой способ получить, скажем, значок папки LaF?


Дизайн, который я сейчас получаю:

введите здесь описание изображения

И дизайн, который я хочу иметь:

введите здесь описание изображения


person XtremeBaumer    schedule 11.06.2018    source источник
comment
1) См. графический интерфейс файлового браузера для использования хороших значков в дереве. Он использует FileSystemView для обнаружения правильных значков. 2) Чтобы быстрее получить помощь, опубликуйте минимально воспроизводимый пример или Короткий, автономный, правильный пример.   -  person Andrew Thompson    schedule 11.06.2018


Ответы (1)


Попробуйте использовать класс UIDefaults для получения значений:

UIDefaults defaults = UIManager.getLookAndFeelDefaults();
Icon icon = (Icon)defaults.get(...);

Ознакомьтесь с стандартными настройками UIManager. Эти значки меняются при изменении LAF.

person camickr    schedule 11.06.2018
comment
Я изменил на setIcon(UIManager.getLookAndFeelDefaults().getIcon("FileView.fileIcon"));, и он остается прежним. - person XtremeBaumer; 11.06.2018
comment
Вы перешли по ссылке, скачали код и протестировали его. Иконки меняются для меня. Опубликуйте свой минимально воспроизводимый пример, демонстрирующий проблему. - person camickr; 11.06.2018
comment
Я смог определить правильный ключ, который мне нужен для дизайна. Очень хорошее приложение - person XtremeBaumer; 12.06.2018