public abstract class State<T extends JComponent> extends Object
Nimbus 内の組み込みまたはカスタムの状態を表します。
Synth では、次のようないくつかの組み込み状態が提供されています。
ただし、LookAndFeel で記述できる状態がさらに多数あるため、これらの異なる状態に基づいてコンポーネントのスタイルを別々に設定することをお勧めします。たとえば、進捗バーを「不確定」にできます。これを「状態」として定義できると非常に便利です。
この State クラスは、このような状況で使用することを目的としています。#isInState 抽象メソッドを実装するだけです。指定された JComponent が「この状態にある」場合は true を返し、それ以外の場合は false を返します。このメソッドはパフォーマンスが重要なループで何度も呼び出されます。そのため、非常に高速に実行する必要があります。
たとえば、JProgressBar のカスタムの「Indeterminate」状態を次のように実装できます。
public final class IndeterminateState extends State<JProgressBar> {
public IndeterminateState() {
super("Indeterminate");
}
@Override
protected boolean isInState(JProgressBar c) {
return c.isIndeterminate();
}
}
protected State(String name)
新しいカスタム State を作成します。状態の名前を指定します。この名前は、任意の特定コンポーネントの状態セット内で一意になるようにしてください。状態の名前は、UIDefaults で使用される名前と一致するようにしてください。
たとえば、次は正しいです。
defaults.put("Button.States", "Enabled, Foo, Disabled");
defaults.put("Button.Foo", new FooState("Foo"));
name
- 状態用の単純でユーザーフレンドリーな名前。「Indeterminate」、「EmbeddedPanel」、「Blurred」など。最初の文字を大文字するキャメル記法を使用するのが慣例です。public String toString()
Object
toString
メソッドは、このオブジェクトを「テキストで表す」文字列を返します。この結果は、人間が読める簡潔で有益な情報であるべきです。すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。
クラス Object
の toString
メソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@
」、およびオブジェクトのハッシュコードの符号なし 16 進数表現から構成される文字列を返します。つまり、このメソッドは次の値と等しい文字列を返します。
getClass().getName() + '@' + Integer.toHexString(hashCode())
protected abstract boolean isInState(T c)
指定された JComponent がこのクラスによって表されたカスタム状態にあるかどうかを取得します。これは、非常にパフォーマンスが重要なループです。 適切な予防措置を講じて、高速に実行されるようにしてください。
Nimbus は、このメソッドを使用して JComponent がどの状態にあるかを判断できます。たとえば、JProgressBar が不確定の場合に true
を返すようなカスタムの State が JProgressBar 用に存在できます。このメソッドのそのような実装は単純に次のようになります。
return c.isIndeterminate();
c
- テストする JComponent。null は不可。c
の状態がこの State
インスタンスで表されるカスタム状態である場合は true バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.