Какой компонент внешнего вида я устанавливаю для изменения цвета текста в TitledBorder? - PullRequest
2 голосов
/ 05 марта 2010

В моем приложении Swing есть группа переключателей, вокруг которых построена рамка:

radioButtonPanel.setBorder( new CompoundBorder ( 
    BorderFactory.createTitledBorder( " Input Data " ), padBorder ) );

Наше приложение поддерживает два вида: светлый и темный. При переключении между ними цвет границы сам по себе меняет цвета правильно, а текст - нет. Для жизни я не могу понять, как называется компонент, который я должен установить цвет. Документация для createTitledBorder() говорит, что он использует внешний вид по умолчанию, но я не уверен, где он использует его по умолчанию. Я думал, что это был Panel.foreground, но это не так, и ничто иное, похоже, не выглядит вполне правильным.

Кто-нибудь знает, какой компонент внешнего вида мне нужно установить здесь?

Ответы [ 2 ]

5 голосов
/ 05 марта 2010

Вы можете установить цвет заголовка в экземпляре TitledBorder или создать его, используя конструктор, который принимает цвет заголовка в качестве аргумента.

В javadoc TitledBorder также указано, что свойство "TitledBorder.titleColor" из внешнего вида используется по умолчанию. Вы можете изменить это следующим образом:

UIManager.getDefaults().set("TitledBorder.titleColor", Color.RED);
1 голос
/ 16 декабря 2010

Вместо звонка

UIManager.getDefaults().set("TitledBorder.titleColor", Color.RED);

вам нужно будет позвонить

UIManager.put("TitledBorder.titleColor", Color.RED);
...