2012-02-23 5 views
0

私はNimbusのルックアンドフィールにフィットするカスタムコンポーネントを開発しています。私は、Java 1.6の"nimbusBlueGrey"と同様に、com.sun.java.swing.plaf.nimbus.DerivedColorのインスタンスを返すカラーのデフォルトに問題があります。ニンバスプライベートクラス `DerivedColor`を正しいARGB値にデコード

これはプライベートクラスであり、とにかくJava 7で変更されるため、これをjava.awt.Colorのインスタンスのように扱う必要があります。しかし、私が色を混ぜようとすると、例えば。色相、彩度、明度を調整すると、これらの邪悪なオブジェクトは間違ったRGBカラーを返します。 toString出力は、この問題を示しています

DerivedColor(color=50,50,50 parent=nimbusBase offsets=0.03245944,-0.525188,0.196078,0) 

だから私は正しいだろうARGB 0xffa9b0be(参照Nimbus Defaults)としてこれを読むことができるようにしたい - しかし、私はgetRGBから取得すると、その役に立たない0x00323232です。

答えて

0

Nimbus が現在のルックアンドフィールでない場合、問題が発生します。DerivedColorが現在のルックアンドフィールをルックアップし、親の色をデコードできないようです。

解決策は、Nimbusが設定されていない場合のデフォルトの色のコピーを使用することです。

関連する問題