モジュール java.desktop
パッケージ javax.swing.plaf.nimbus

クラス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();
         }
     }