Расширьте свинговые цвета на пользовательские компоненты - PullRequest
1 голос
/ 13 декабря 2011

Реализуя свинг-приложения, вы часто понимаете класс компонентов, которые должны иметь согласованный вид.
Пример: Mypanel, который расширяет JPanel и представляет аппликативный объект и, таким образом, имеет желтый фон с более темной желтой границей.
Можно ли использовать управление цветом свинга?
Моя идея состоит в том, чтобы поместить мои цвета в UIManager.getLookAndFeelDefaults карту и затем каким-то образом привязать их к компоненту.
Это «как-то» вопрос: как это сделать в простейшем виде?

1 Ответ

3 голосов
/ 13 декабря 2011

Примерно так должно работать, если вы хотите настроить только несколько компонентов:

// Specify the colors
UIDefaults uiDef = new UIDefaults();
uiDef.put("Panel.background", Color.BLUE);

// Use the colors on a specific component
JPanel panel = new JPanel();
panel.putClientProperty("Nimbus.Overrides", uiDef);
SwingUtilities.updateComponentTreeUI(panel);

См. Значения по умолчанию Nimbus для названий клавиш и цветов по умолчанию и художников.

...