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 |
getBackgroundPainter(SynthContext ctx)
指定されたSynthContextに指定された状態の該当するバックグラウンドPainterがあれば、それを取得します。
|
Painter |
getBorderPainter(SynthContext ctx)
指定されたSynthContextに指定された状態の該当するボーダーPainterがあれば、それを取得します。
|
protected Color |
getColorForState(SynthContext ctx, ColorType type)
指定された状態の色を返します。
|
protected Font |
getFontForState(SynthContext ctx)
指定された状態のフォントを返します。
|
Painter |
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を返します。
|
getBoolean, getColor, getFont, getGraphicsUtils, getIcon, getInt, getString, uninstallDefaults
public static final double LARGE_SCALE
public static final double SMALL_SCALE
public static final double MINI_SCALE
public void installDefaults(SynthContext ctx)
context
のJComponent
にインストールします。必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。installDefaults
、クラス: SynthStyle
ctx
- プロパティがインストールされるコンポーネントを識別するSynthContext。public Insets getInsets(SynthContext ctx, Insets in)
getInsets
、クラス: SynthStyle
ctx
- 要求元を識別するSynthContextin
- 戻り値を入れるInsets。protected Color getColorForState(SynthContext ctx, ColorType type)
JComponent
に対するメソッドを一切呼び出すべきではありません。
必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。
さらに、NimbusStyleによるColorTypesの処理はSynthと多少異なります。
getColorForState
、クラス: SynthStyle
ctx
- 要求元を識別するSynthContexttype
- 要求される色のタイプ。protected Font getFontForState(SynthContext ctx)
JComponent
に対するメソッドを一切呼び出すべきではありません。必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。UIDefaultsに「font」という名前の値が見つからない場合は、代わりに、UIDefaultsの「defaultFont」フォントが返されます。getFontForState
、クラス: SynthStyle
ctx
- 要求元を識別するSynthContextpublic SynthPainter getPainter(SynthContext ctx)
SynthPainter
を返します。nullを返すこともあります。最終的に、このスタイルでインストールされたPaintersに委譲する、このスタイルのSynthPainterが返されます。getPainter
、クラス: SynthStyle
ctx
- 要求元を識別するSynthContextpublic boolean isOpaque(SynthContext ctx)
isOpaque
、クラス: SynthStyle
ctx
- 要求元を識別するSynthContextpublic 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
- key
- nullは不可public Painter getBackgroundPainter(SynthContext ctx)
ctx
- SynthContext。nullは不可。public Painter getForegroundPainter(SynthContext ctx)
ctx
- SynthContext。nullは不可。public Painter getBorderPainter(SynthContext ctx)
ctx
- SynthContext。nullは不可。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.