JButtonのために明示的に設定フォアグラウンドカラーを取得
-
24-09-2019 - |
質問
私はボタンを描画するカスタムButtonUIクラスを持っています。テキストを描画する前に、paintメソッドをチェックボタンを代わりにする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()をチェックするので、は、それはボタンが上に置かれているコンポーネントのフォアグラウンドカラーを返すよう限ります。
助けにはなりません質問です:?どのように私はボタンが明示的にカスタムのフォアグラウンドカラー
に設定されているかどうかをチェックしますかボタンをPropertyChangedListenerを置くことは解決策になるかもしれませんが、私は何とか簡単な方法がなければならないと考えます。
解決
Component
であなたはisBackgroundSet()
方法を見つけることができます。
他のヒント
メソッドをオーバーライドし、それがthis.foreground返す持っています。または新しいメソッドを追加していることに戻ります。
所属していません StackOverflow