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

クラスSpring


  • public abstract class Spring
    extends Object
    Springクラスのインスタンスは、その動作を特徴付ける3つのプロパティ(値はminimumpreferred、およびmaximum)を保持します。 各プロパティは、一連の規則に基づいて4番目のプロパティであるvalueの定義に含まれることもあります。

    Springクラスのインスタンスは、機械的なスプリングと同様に矯正する力を受けて、推奨値(preferred値)を基準に圧縮されたり引き伸ばされたりします。 矯正力は、推奨値からの距離の1次関数としてモデル化されていますが、圧縮する力と引き伸ばす力に対応する2つの定数が含まれます。 定数は、最小値(minimum値)と最大値(maximum値)です。スプリングが最小値の状態から生成する力は、最大値の状態から生成する力と大きさが等しく、反対方向となります。 したがって、preferred値とminimum値の差はSpringの圧縮しやすさを表し、maximum値とpreferred値の差は引き伸ばしやすさを表します。 詳細は、sum(javax.swing.Spring, javax.swing.Spring)メソッドを参照してください。

    Springで簡単な算術演算を定義することにより、Springのコレクションの動作を、通常の(複合ではない) Springの動作と同じレベルまで削減できます。 Springには「+」、「-」、max、およびminの演算子が定義されているため、いずれの場合も、Springは構成するスプリングに対する数学的操作が容易になっています。

    Springは、共通点である推奨値(preferred値)を持つ一組の間隔として扱うことができます。 間隔に適用できる算術演算子は、次のような規則によって定義されます。[a, b]は、a <= bの場合のaからbへの間隔です。

              [a1, b1] + [a2, b2] = [a1 + a2, b1 + b2]
    
                          -[a, b] = [-b, -a]
    
          max([a1, b1], [a2, b2]) = [max(a1, a2), max(b1, b2)]
      

    Spring[a, b, c] (a <= b <= c)と表した場合は、Springに対して同様の算術演算子を定義できます。

              [a1, b1, c1] + [a2, b2, c2] = [a1 + a2, b1 + b2, c1 + c2]
    
                               -[a, b, c] = [-c, -b, -a]
    
          max([a1, b1, c1], [a2, b2, c2]) = [max(a1, a2), max(b1, b2), max(c1, c2)]
      

    間隔とSpringの両方を使用すると、次のように正負を逆にした「-」とminを定義できます。

          X - Y = X + (-Y)
    
          min(X, Y) = -max(-X, -Y)
      

    算術演算子を具現化するこのクラスの静的メソッドでは、実際には、メソッド引数のプロパティ値のスナップショットを取得するような演算を、静的メソッドが呼び出された時点で実行しません。 その代わりに、静的メソッドによって、メソッドの引数への参照を含む新しいSpringインスタンスが作成されるため、作成元のスプリングの特性のうち変更される可能性のある特性は、新しいスプリングの特性によって追跡されます。 これは、関数型言語のlazy valueの考え方に似ています。

    SpringLayoutを実装している場合、詳細な情報と例については、『The Java Tutorial』の「How to Use SpringLayout」を参照してください。

    警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースとの互換性がなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。

    導入されたバージョン:
    1.4
    関連項目:
    SpringLayout, SpringLayout.Constraints
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static int UNSET
      プロパティ値が計算されていないことを示す整数値です。
    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected Spring()
      Springを作成するためにファクトリ・メソッドが使用します。
    • メソッドのサマリー

      すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      static Spring constant​(int pref)
      柱(minimum値、preferred値、およびmaximum値がすべて値prefを持つスプリング)を返します。
      static Spring constant​(int min, int pref, int max)
      minimum値、preferred値、およびmaximum値がそれぞれ値minpref、およびmaxを持つスプリングを返します。
      abstract int getMaximumValue()
      このSpringmaximum値を返します。
      abstract int getMinimumValue()
      このSpringminimum値を返します。
      abstract int getPreferredValue()
      このSpringpreferred値を返します。
      abstract int getValue()
      このSpringの現在のvalueを返します。
      static Spring height​(Component c)
      minimumpreferredmaximum、およびvalueの各プロパティが、それぞれ指定されたコンポーネントのminimumSizepreferredSizemaximumSize、およびsizeの各プロパティの高さで定義されているスプリングを返します。
      static Spring max​(Spring s1, Spring s2)
      常にs1s2のいずれよりも大きいか等しい値を持つスプリングmax(s1, s2)を返します。
      static Spring minus​(Spring s)
      sと反対方向に動くスプリング-sを返します。
      static Spring scale​(Spring s, float factor)
      minimumpreferredmaximum、およびvalueの各プロパティが引数スプリングsのプロパティの倍数になっているスプリングを返します。
      abstract void setValue​(int value)
      このSpringの現在のvalueに設定します。
      static Spring sum​(Spring s1, Spring s2)
      s1s2の直列接続を表すスプリングs1+s2を返します。
      static Spring width​(Component c)
      minimumpreferredmaximum、およびvalueの各プロパティが、それぞれ指定されたコンポーネントのminimumSizepreferredSizemaximumSize、およびsizeの各プロパティの幅で定義されているスプリングを返します。
    • フィールドの詳細

      • UNSET

        public static final int UNSET
        プロパティ値が計算されていないことを示す整数値です。
        関連項目:
        定数フィールド値
    • メソッドの詳細

      • getMinimumValue

        public abstract int getMinimumValue()
        このSpringminimum値を返します。
        戻り値:
        このSpringminimumValueプロパティ
      • getPreferredValue

        public abstract int getPreferredValue()
        このSpringpreferred値を返します。
        戻り値:
        このSpringpreferredValue
      • getMaximumValue

        public abstract int getMaximumValue()
        このSpringmaximum値を返します。
        戻り値:
        このSpringmaximumValueプロパティ
      • getValue

        public abstract int getValue()
        このSpringの現在のvalueを返します。
        戻り値:
        このSpringvalueプロパティ
        関連項目:
        setValue(int)
      • setValue

        public abstract void setValue​(int value)
        このSpringの現在のvalueに設定します。
        パラメータ:
        value - valueプロパティの新しい設定
        関連項目:
        getValue()
      • constant

        public static Spring constant​(int pref)
        柱(minimum値、preferred値、およびmaximum値がすべて値prefを持つスプリング)を返します。
        パラメータ:
        pref - 新しいスプリングのminimum値、preferred値、およびmaximum
        戻り値:
        minimum値、preferred値、およびmaximum値のそれぞれが値prefを持つスプリング
        関連項目:
        Spring
      • constant

        public static Spring constant​(int min,
                                      int pref,
                                      int max)
        minimum値、preferred値、およびmaximum値がそれぞれ値minpref、およびmaxを持つスプリングを返します。
        パラメータ:
        min - 新しいスプリングのminimum
        pref - 新しいスプリングのpreferred
        max - 新しいスプリングのmaximum
        戻り値:
        minimum値、preferred値、およびmaximum値がそれぞれ値minpref、およびmaxを持つスプリング
        関連項目:
        Spring
      • minus

        public static Spring minus​(Spring s)
        sと反対方向に動くスプリング-sを返します。
        パラメータ:
        s - Springオブジェクト
        戻り値:
        スプリングsと反対方向に動くスプリング-s
        関連項目:
        Spring
      • sum

        public static Spring sum​(Spring s1,
                                 Spring s2)
        s1s2の直列接続を表すスプリングs1+s2を返します。 2つのスプリングs1s2のsumであるs3では、s1s2、およびs3は、整数valueの精度内で同じレベルに維持されます。 圧縮時のスプリングの力は、次のようになります。
                 value - pref
                 ------------
                  pref - min
         
        引っ張られているときのスプリングの力は、次のようになります。
                 value - pref
                 ------------
                  max - pref
         
        setValueがsumスプリングs3で呼び出されると、s3の力は上記のどれかの式を使って計算されます。 sumの力が算出されると、s1s2valueはsumの力と等しくなるように設定されます。 式の評価には丸め誤差が考慮され、s1s2valueのsumはs3valueと正確に等しくなります。
        パラメータ:
        s1 - Springオブジェクト
        s2 - Springオブジェクト
        戻り値:
        s1s2の直列接続を表すスプリングs1+s2
        関連項目:
        Spring
      • max

        public static Spring max​(Spring s1,
                                 Spring s2)
        常にs1s2のいずれよりも大きいか等しい値を持つスプリングmax(s1, s2)を返します。
        パラメータ:
        s1 - Springオブジェクト
        s2 - Springオブジェクト
        戻り値:
        常にs1s2の両方よりも大きいか等しい値を持つスプリングmax(s1, s2)
        関連項目:
        Spring
      • scale

        public static Spring scale​(Spring s,
                                   float factor)
        minimumpreferredmaximum、およびvalueの各プロパティが引数スプリングsのプロパティの倍数になっているスプリングを返します。 factorが負の値(間隔の算術式の規則に従って)の場合、最大値と最小値のプロパティは入れ替わります。

        たとえば、係数が0.5fの場合、結果はその入力値の「中間点」を表し、コンテナ内でコンポーネントを中央に配置するのに役立ちます。

        パラメータ:
        s - スケーリングするスプリング
        factor - スケーリングの量。
        戻り値:
        プロパティが、入力スプリングsのプロパティにfactorをかけた値になっているスプリング
        例外:
        NullPointerException - sがnullである場合
        導入されたバージョン:
        1.5
      • width

        public static Spring width​(Component c)
        minimumpreferredmaximum、およびvalueの各プロパティが、それぞれ指定されたコンポーネントのminimumSizepreferredSizemaximumSize、およびsizeの各プロパティの幅で定義されているスプリングを返します。 返されるスプリングは「ラッパー」の実装であり、そのメソッドによって、指定されたコンポーネントのそれぞれのサイズ・メソッドが呼び出されます。 したがって、返されたスプリングの最大値、推奨値、最小値、および値の各プロパティによって、コンポーネントのそれぞれのプロパティの現在の状態が報告され、それらのプロパティが変更に伴って追跡されます。
        パラメータ:
        c - サイズの計算に使用されるコンポーネント
        戻り値:
        プロパティが、コンポーネントのサイズ・メソッドの水平方向のコンポーネントによって定義されているスプリング。
        例外:
        NullPointerException - cがnullである場合
        導入されたバージョン:
        1.5
      • height

        public static Spring height​(Component c)
        minimumpreferredmaximum、およびvalueの各プロパティが、それぞれ指定されたコンポーネントのminimumSizepreferredSizemaximumSize、およびsizeの各プロパティの高さで定義されているスプリングを返します。 返されるスプリングは「ラッパー」の実装であり、そのメソッドによって、指定されたコンポーネントのそれぞれのサイズ・メソッドが呼び出されます。 したがって、返されたスプリングの最大値、推奨値、最小値、および値の各プロパティによって、コンポーネントのそれぞれのプロパティの現在の状態が報告され、それらのプロパティが変更に伴って追跡されます。
        パラメータ:
        c - サイズの計算に使用されるコンポーネント
        戻り値:
        プロパティが、コンポーネントのサイズ・メソッドの垂直方向のコンポーネントによって定義されているスプリング。
        例外:
        NullPointerException - cがnullである場合
        導入されたバージョン:
        1.5