Nimbus меняет цвет заголовка вкладки

#java #swing #look-and-feel #nimbus

#java #swing #внешний вид #nimbus

Вопрос:

Я хотел бы изменить цвет заголовка моих вкладок.
Я пытался установить разные свойства, но ничего не меняется.
В моем основном я установил для свойства text значение white, чтобы весь текст был белым.

Теперь я хотел бы изменить текст некоторых компонентов, например, на панели вкладок, но он не меняется.

 UIDefaults tabPaneDefaults = new UIDefaults();
tabPaneDefaults.put("textBackground", new ColorUIResource(Color.black));
tabPaneSettings.putClientProperty("Nimbus.Overrides", tabPaneDefaults);
tabPaneSettings.putClientProperty("Nimbus.Overrides.InheritDefaults",false);`
  

Ответ №1:

Я думаю, что фактическое значение для настройки фона текста — «TabbedPane.background». Итак, ваш код должен начинаться с:

 UIDefaults tabPaneDefaults = new UIDefaults();
    tabPaneDefaults.put("TabbedPane.background", new ColorUIResource(Color.black));
  

Комментарии:

1. Я пробовал использовать эти свойства и несколько других, но ничего не меняется.

2. В Nimbus есть что-то дерьмовое, я думаю, что он не использует UIDefaults переопределение цветов. Я перепробовал множество комбинаций для изменения цветов, но ни одна из них не сработала: (

Ответ №2:

Nimbus TabbedPaneTabPainter очень сложен. Смотрите Oracle: TabedPaneTabPainter

Вы должны установить

 UIManager.put("nimbusBase", *here dark Color*);
  

«nimubsBase» на темный цвет.

Красиво выглядит настройка кнопок и т.д. на соответствующий цвет. Выберите

 UIManager.put("nimbusBlueGrey", *here light Color*);
  

Требуется некоторое время, чтобы найти подходящую пару цветов. Иногда даже небольшие изменения дают отличный эффект, иногда большие изменения почти не дают эффекта. Это из-за сложного вычисления цветов.