クラスNimbusStyle

java.lang.Object
javax.swing.plaf.synth.SynthStyle
javax.swing.plaf.nimbus.NimbusStyle

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 final String
    大きなキー
    static final double
    大規模
    static final String
    ミニ・キー
    static final double
    ミニ・スケール
    static final String
    小さなキー
    static final double
    小規模
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    get(SynthContext ctx, Object key)
    領域固有のスタイル・プロパティを取得します。
    指定されたSynthContextに指定された状態の該当するバックグラウンドPainterがあれば、それを取得します。
    指定されたSynthContextに指定された状態の該当するボーダーPainterがあれば、それを取得します。
    protected Color
    指定された状態の色を返します。
    protected Font
    指定された状態のフォントを返します。
    指定されたSynthContextに指定された状態の該当するフォアグラウンドPainterがあれば、それを取得します。
    サイズ変更情報の計算に使用されるInsetsを返します。
    ペイントに使用されるSynthPainterを返します。
    void
    このStyleから必要な状態をcontextJComponentにインストールします。
    boolean
    領域が不透明な場合にtrueを返します。

    クラスで宣言されたメソッド SynthStyle

    getBoolean, getColor, getFont, getGraphicsUtils, getIcon, getInt, getString, uninstallDefaults
    修飾子と型
    メソッド
    説明
    boolean
    getBoolean(SynthContext context, Object key, boolean defaultValue)
    Boolean型の値を持つ特定のスタイル・プロパティを取得する簡易メソッドです。
    指定された状態の色を返します。
    指定された状態のFontを返します。
    指定されたコンテキストのSynthGraphicUtilsを返します。
    getIcon(SynthContext context, Object key)
    値がIconである特定のスタイル・プロパティを取得する簡易メソッドです。
    int
    getInt(SynthContext context, Object key, int defaultValue)
    値がNumberである特定のスタイル・プロパティを取得する簡易メソッドです。
    getString(SynthContext context, Object key, String defaultValue)
    値がStringである特定のスタイル・プロパティを取得する簡易メソッドです。
    void
    このStyleがcontextJComponentにインストールした状態をすべてアンインストールします。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

  • メソッドの詳細

    • installDefaults

      public void installDefaults(SynthContext ctx)
      このStyleから必要な状態をcontextJComponentにインストールします。 必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。
      オーバーライド:
      installDefaults、クラスSynthStyle
      パラメータ:
      ctx - プロパティがインストールされるコンポーネントを識別するSynthContext。
    • getInsets

      public Insets getInsets(SynthContext ctx, Insets in)
      サイズ変更情報の計算に使用されるInsetsを返します。 必要に応じて、このスタイル自体にUIDefaultsからのデータが移入されるようにオーバーライドされます。
      オーバーライド:
      getInsets、クラスSynthStyle
      パラメータ:
      ctx - 要求元を識別するSynthContext
      in - 戻り値を入れる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 - 要求元を識別するSynthContext
      type - 要求される色のタイプ。
      戻り値:
      描画に使用される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 - 要求元を識別するSynthContext
      key - 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。