public final class NimbusStyle extends SynthStyle
Nimbusによって使用されるSynthStyle実装。 NimbusLookAndFeelに登録されている各Regionは、関連付けられたNimbusStyleを持ちます。 そのため、NimbusLookAndFeelに登録されたサード・パーティ・コンポーネントには、#getStyle(JComponent, Region)メソッドによりLook & FeelからNimbusStyleが渡されます。
このクラスは、標準のNimbus命名規約に従ってUIDefaultsに配置されている値を適切に読み取り、取得します。 また、そこに格納されるペインタ、フォント、色、およびその他のデータを作成および取得します。
NimbusStyleは、設定をコンポーネントごとにオーバーライドする機能もサポートします。 NimbusStyleは、コンポーネントのクライアント・プロパティのマップに「Nimbus.Overrides」があるかどうかチェックします。 このキーに関連付けられた値がUIDefaultsのインスタンスの場合、そのデフォルト・テーブルの値がUIManagerにある標準のNimbusのデフォルトをオーバーライドしますが、そのコンポーネントのインスタンスのみを対象とします。
オプションとして、クライアント・プロパティ「Nimbus.Overrides.InheritDefaults」を指定できます。 このクライアント・プロパティがtrueの場合、UIManagerにあるデフォルトが最初に読み込まれ、次にコンポーネントのクライアント・プロパティにあるデフォルトに置き換えられるべきであることを示します。 falseの場合、コンポーネントのクライアント・プロパティ・マップにあるデフォルトのみが使用されます。 指定されていない場合、trueであるとみなされます。
「Nimbus.Overrides.InheritDefaults」の効果が生じるように「Nimbus.Overrides」を指定する必要があります。 「Nimbus.Overrides」はオーバーライドがあるかどうかを示し、「Nimbus.Overrides.InheritDefaults」は、それらのオーバーライドが最初にUIManagerのデフォルトで初期化されるべきかどうかを示します。
NimbusStyleは、「Nimbus.Overrides」または「Nimbus.Overrides.InheritDefaults」のコンポーネントのプロパティ変更イベントがトリガーされるたびに再ロードされます。 このため、たとえば新しいUIDefaultsをコンポーネントに設定すると、スタイルが再ロードされます。
値はUIManagerから一度読み込まれるだけで、その後はキャッシュされます。 値を再度読み取る必要がある場合(たとえばUIが再ロードされる場合)、このNimbusStyleを破棄し、NimbusLookAndFeel.getStyleを使用してNimbusLookAndFeelから新しい値を読み取ります。
サード・パーティ・コンポーネントの作成者の場合、このクラスで主に対象となるAPIは、ペインタを取得する3つのメソッド(#getBackgroundPainter、#getForegroundPainter、#getBorderPainter)です。
NimbusStyleにより、カスタム状態の指定や状態の順序の変更ができます。 Synthには(したがってNimbusにも)「状態」の概念があります。 たとえば、JButtonの状態は「MOUSE_OVER」、「ENABLED」、または「DISABLED」になる可能性があります。 これらはすべて、Synthに定義され、すべてのSynth Regionに適用される「標準」状態です。
ただし、カスタム状態が必要な場合もあります。 たとえば、JButtonの親がJToolbarのときに、このJButtonを異なるように描画する場合があります。 Nimbusでは、これらのカスタム状態を、UIDefaultsに特別なキーを含めることで指定します。 次のUIDefaultsエントリでは、このボタンの3つの状態を定義します。
JButton.States = Enabled, Disabled, Toolbar
JButton[Enabled].backgroundPainter = somePainter
JButton[Disabled].background = BLUE
JButton[Toolbar].backgroundPainter = someOtherPaint
見てわかるように、JButton.States
エントリはJButtonスタイルがサポートする状態をリストします。 次に、各状態の設定を指定します。 JButton.States
エントリを指定しない場合、標準のSynth状態が使用されます。 このエントリを指定しても、状態のリストが空またはnullの場合、標準のSynth状態が使用されます。
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static String
LARGE_KEY
大きな鍵static double
LARGE_SCALE
大規模static String
MINI_KEY
ミニ・キーstatic double
MINI_SCALE
ミニ・スケールstatic String
SMALL_KEY
小さなキーstatic double
SMALL_SCALE
小規模 -
メソッドのサマリー
修飾子と型 メソッド 説明 Object
get(SynthContext ctx, Object key)
領域固有のスタイル・プロパティを取得します。Painter<Object>
getBackgroundPainter(SynthContext ctx)
指定されたSynthContextに指定された状態の該当するバックグラウンドPainterがあれば、それを取得します。Painter<Object>
getBorderPainter(SynthContext ctx)
指定されたSynthContextに指定された状態の該当するボーダーPainterがあれば、それを取得します。protected Color
getColorForState(SynthContext ctx, ColorType type)
指定された状態の色を返します。protected Font
getFontForState(SynthContext ctx)
指定された状態のフォントを返します。Painter<Object>
getForegroundPainter(SynthContext ctx)
指定されたSynthContextに指定された状態の該当するフォアグラウンドPainterがあれば、それを取得します。Insets
getInsets(SynthContext ctx, Insets in)
サイズ変更情報の計算に使用されるInsetsを返します。SynthPainter
getPainter(SynthContext ctx)
ペイントに使用されるSynthPainter
を返します。void
installDefaults(SynthContext ctx)
このStyleから必要な状態をcontext
のJComponent
にインストールします。boolean
isOpaque(SynthContext ctx)
領域が不透明な場合にtrueを返します。クラス javax.swing.plaf.synth.SynthStyleで宣言されたメソッド
getBoolean, getColor, getFont, getGraphicsUtils, getIcon, getInt, getString, uninstallDefaults
-
フィールド詳細
-
LARGE_KEY
public static final String LARGE_KEY大きな鍵- 関連項目:
- 定数フィールド値
-
SMALL_KEY
public static final String SMALL_KEY小さなキー- 関連項目:
- 定数フィールド値
-
MINI_KEY
public static final String MINI_KEYミニ・キー- 関連項目:
- 定数フィールド値
-
LARGE_SCALE
public static final double LARGE_SCALE大規模- 関連項目:
- 定数フィールド値
-
SMALL_SCALE
public static final double SMALL_SCALE小規模- 関連項目:
- 定数フィールド値
-
MINI_SCALE
public static final double MINI_SCALEミニ・スケール- 関連項目:
- 定数フィールド値
-
-
メソッドの詳細
-
installDefaults
public void installDefaults(SynthContext ctx)このStyleから必要な状態をcontext
のJComponent
にインストールします。 必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。- オーバーライド:
installDefaults
、クラス:SynthStyle
- パラメータ:
ctx
- プロパティがインストールされるコンポーネントを識別するSynthContext。
-
getInsets
public Insets getInsets(SynthContext ctx, Insets in)サイズ変更情報の計算に使用されるInsetsを返します。 必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。- オーバーライド:
getInsets
、クラス:SynthStyle
- パラメータ:
ctx
- 要求元を識別するSynthContextin
- 戻り値を入れるInsets。- 戻り値:
- サイズ変更のInsets。
-
getColorForState
protected Color getColorForState(SynthContext ctx, ColorType type)指定された状態の色を返します。 これは、JComponent
に対するメソッドを一切呼び出すべきではありません。必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。
さらに、NimbusStyleによるColorTypesの処理はSynthと多少異なります。
- ColorType.BACKGROUNDは、「background」という名前のUIDefaultsに格納された色と一致します。
- ColorType.TEXT_BACKGROUNDは、「textBackground」という名前のUIDefaultsに格納された色と一致します。
- ColorType.FOREGROUNDは、「textForeground」という名前のUIDefaultsに格納された色と一致します。
- ColorType.TEXT_FOREGROUNDは、「textForeground」という名前のUIDefaultsに格納された色と一致します。
- 定義:
getColorForState
、クラス:SynthStyle
- パラメータ:
ctx
- 要求元を識別するSynthContexttype
- 要求される色のタイプ。- 戻り値:
- 描画に使用されるColor
-
getFontForState
protected Font getFontForState(SynthContext ctx)指定された状態のフォントを返します。 これは、JComponent
に対するメソッドを一切呼び出すべきではありません。 必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。 UIDefaultsに「font」という名前の値が見つからない場合は、代わりに、UIDefaultsの「defaultFont」フォントが返されます。- 定義:
getFontForState
、クラス:SynthStyle
- パラメータ:
ctx
- 要求元を識別するSynthContext- 戻り値:
- 描画に使用されるFont
-
getPainter
public SynthPainter getPainter(SynthContext ctx)ペイントに使用されるSynthPainter
を返します。 nullを返すこともあります。 最終的に、このスタイルでインストールされたPaintersに委譲する、このスタイルのSynthPainterが返されます。- オーバーライド:
getPainter
、クラス:SynthStyle
- パラメータ:
ctx
- 要求元を識別するSynthContext- 戻り値:
- 使用されるSynthPainter
-
isOpaque
public boolean isOpaque(SynthContext ctx)領域が不透明な場合にtrueを返します。 必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。 UIのデフォルトに不透明度が指定されていない場合は、デフォルトで不透明でなくなります。- オーバーライド:
isOpaque
、クラス:SynthStyle
- パラメータ:
ctx
- 要求元を識別するSynthContext- 戻り値:
- 領域が不透明な場合はtrue。
-
get
public Object get(SynthContext ctx, Object key)領域固有のスタイル・プロパティを取得します。必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。
UIDefaultsのプロパティは、つなげて指定される場合があります。 次に例を示します。
background Button.opacity Button.Enabled.foreground Button.Enabled+Selected.background
この例では、Enabled+Selectedの状態で、「foreground」が検索されたと仮定します。 この場合、最初にButton.Enabled+Selected.foregroundがチェックされますが、このような色は存在しません。 その後、次に有効な状態(この場合、Button.Enabled.foreground)に戻り、一致が見つかります。 したがって、これが返されます。
同様に、Enabledの状態で、「background」が検索された場合は、Button.EnabledまたはButtonでは見つかりませんが、UIManagerの最上位レベルで見つかります。 したがって、その値が返されます。
特別なノート: このメソッドに渡される「キー」の形式は、「background」または「Button.background」です。ここで、「Button」はNimbusStyleコンストラクタに渡される接頭辞と等しいです。 どちらの場合でも、「background」が検索されます。
- オーバーライド:
get
、クラス:SynthStyle
- パラメータ:
ctx
- 要求元を識別するSynthContextkey
- nullは不可- 戻り値:
- 指定されたプロパティの値
-
getBackgroundPainter
public Painter<Object> getBackgroundPainter(SynthContext ctx)指定されたSynthContextに指定された状態の該当するバックグラウンドPainterがあれば、それを取得します。 このメソッドは、#getに記述されているとおりに、適切なフォール・バック検索を実行します。- パラメータ:
ctx
- SynthContext。 nullは不可。- 戻り値:
- 指定された状態に関連するバックグラウンド・ペインタ。バックグラウンド・ペインタが見つからなかった場合はnull。
-
getForegroundPainter
public Painter<Object> getForegroundPainter(SynthContext ctx)指定されたSynthContextに指定された状態の該当するフォアグラウンドPainterがあれば、それを取得します。 このメソッドは、#getに記述されているとおりに、適切なフォール・バック検索を実行します。- パラメータ:
ctx
- SynthContext。 nullは不可。- 戻り値:
- 指定された状態に関連するフォアグラウンド・ペインタ。フォアグラウンド・ペインタが見つからなかった場合はnull。
-
getBorderPainter
public Painter<Object> getBorderPainter(SynthContext ctx)指定されたSynthContextに指定された状態の該当するボーダーPainterがあれば、それを取得します。 このメソッドは、#getに記述されているとおりに、適切なフォール・バック検索を実行します。- パラメータ:
ctx
- SynthContext。 nullは不可。- 戻り値:
- 指定された状態に関連するボーダー・ペインタ。ボーダー・ペインタが見つからなかった場合はnull。
-