質問

私はボタンを描画するカスタム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返す持っています。または新しいメソッドを追加していることに戻ります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top