У меня есть собственный класс ButtonUI, который рисует кнопку. Перед отрисовкой текста метод рисования проверяет, был ли для кнопки задан пользовательский цвет, чтобы использовать его вместо UIDefaults # get ("Button.foreground").
if ((b.getForeground() != null)) {
colText = b.getForeground();
}
Просмотр класса java.awt.Component приводит к проблеме:
public Color getForeground() {
Color foreground = this.foreground;
if (foreground != null) {
return foreground;
}
Container parent = this.parent;
return (parent != null) ? parent.getForeground() : null;
}
Так что проверка кнопки getForeground () по отношению к null не очень помогает, так как она вернет цвет переднего плана для компонента, на котором находится кнопка.
Вопрос: как проверить, был ли для кнопки явно задан собственный цвет переднего плана?
Поместить PropertyChangedListener на кнопку может быть решением, но я почему-то думаю, что должен быть более простой способ.