クラスState<T extends JComponent>

java.lang.Object
javax.swing.plaf.nimbus.State<T>
型パラメータ:
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();
        }
    }
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    State(String name)
    新しいカスタムStateを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected abstract boolean
    指定されたJComponentがこのクラスによって表されたカスタム状態にあるかどうかを取得します。

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

    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であるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • 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」など。 最初の文字を大文字するキャメル記法を使用するのが慣例です。
  • メソッドの詳細

    • isInState

      protected abstract boolean isInState(T c)

      指定されたJComponentがこのクラスによって表されたカスタム状態にあるかどうかを取得します。 これは、非常にパフォーマンスが重要なループです。 適切な予防措置を講じて、高速に実行されるようにしてください。

      Nimbusは、このメソッドを使用してJComponentがどの状態にあるかを判断できます。 たとえば、JProgressBarが不確定の場合にtrueを返すようなカスタムのStateがJProgressBar用に存在できます。 このメソッドのそのような実装は単純に次のようになります。

       return c.isIndeterminate();
      パラメータ:
      c - テストするJComponent。 nullは不可。
      戻り値:
      cの状態がこのStateインスタンスで表されるカスタム状態である場合はtrue