- java.lang.Object
-
- javax.swing.plaf.nimbus.State<T>
-
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(); } }
-
-
コンストラクタの詳細
-
State
protected State(String name)
新しいカスタムStateを作成します。 状態の名前を指定します。 この名前は、任意の特定コンポーネントの状態セット内で一意になるようにしてください。 状態の名前は、UIDefaultsで使用される名前と一致するようにしてください。
たとえば、次は正しいです。
defaults.put("Button.States", "Enabled, Foo, Disabled"); defaults.put("Button.Foo", new FooState("Foo"));
- パラメータ:
name
- 状態用の単純でユーザー・フレンドリな名前。「Indeterminate」、「EmbeddedPanel」、「Blurred」など。 最初の文字を大文字するキャメル記法を使用するのが慣例です。
-
-
メソッドの詳細
-
toString
public String toString()
次のクラスからコピーされた説明:Object
オブジェクトの文字列表現を返します。 一般に、toString
メソッドは、このオブジェクトを「テキストで表す」文字列を返します。 この結果は、人間が読める簡潔で有益な情報であるべきです。 すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。クラス
Object
のtoString
メソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@
」、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。 つまり、このメソッドは次の値と等しい文字列を返します。getClass().getName() + '@' + Integer.toHexString(hashCode())
-
isInState
protected abstract boolean isInState(T c)
指定されたJComponentがこのクラスによって表されたカスタム状態にあるかどうかを取得します。 これは、非常にパフォーマンスが重要なループです。 適切な予防措置を講じて、高速に実行されるようにしてください。
Nimbusは、このメソッドを使用してJComponentがどの状態にあるかを判断できます。 たとえば、JProgressBarが不確定の場合に
true
を返すようなカスタムのStateがJProgressBar用に存在できます。 このメソッドのそのような実装は単純に次のようになります。return c.isIndeterminate();
- パラメータ:
c
- テストするJComponent。 nullは不可。- 戻り値:
c
の状態がこのState
インスタンスで表されるカスタム状態である場合はtrue
-
-