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

クラスSpring

java.lang.Object
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
関連項目: