public abstract class Spring extends Object
Spring
クラスのインスタンスは、その動作を特徴付ける 3 つのプロパティー (値は minimum、preferred、および 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 クラスの静的メソッドでは、実際には、メソッド引数のプロパティー値のスナップショットを取得するような演算を、静的メソッドが呼び出された時点で実行しません。その代わりに、静的メソッドによって、メソッドの引数への参照を含む新しい Spring
インスタンスが作成されるため、作成元のスプリングの特性のうち変更される可能性のある特性は、新しいスプリングの特性によって追跡されます。これは、関数型言語の lazy value の考え方に似ています。
SpringLayout
を実装している場合、詳細な情報と例については、『The Java Tutorial』の「How to Use SpringLayout」を参照してください。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースとの互換性がなくなる予定です。現在の直列化のサポートは、短期間の格納や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。1.4 以降、すべての JavaBeansTM 用の長期間の格納サポートが java.beans
パッケージに追加されています。XMLEncoder
を参照してください。
SpringLayout
, SpringLayout.Constraints
修飾子と型 | フィールドと説明 |
---|---|
static int |
UNSET
プロパティー値が計算されていないことを示す整数値です。
|
修飾子 | コンストラクタと説明 |
---|---|
protected |
Spring()
Spring を作成するためにファクトリメソッドが使用します。 |
修飾子と型 | メソッドと説明 |
---|---|
static Spring |
constant(int pref)
柱 (minimum 値、preferred 値、および maximum 値がすべて値
pref を持つスプリング) を返します。 |
static Spring |
constant(int min, int pref, int max)
minimum 値、preferred 値、および maximum 値がそれぞれ値
min 、pref 、および max を持つスプリングを返します。 |
abstract int |
getMaximumValue()
この
Spring の maximum 値を返します。 |
abstract int |
getMinimumValue()
この
Spring の minimum 値を返します。 |
abstract int |
getPreferredValue()
この
Spring の preferred 値を返します。 |
abstract int |
getValue()
この
Spring の現在の value を返します。 |
static Spring |
height(Component c)
minimum、preferred、maximum、および value の各プロパティーが、それぞれ指定されたコンポーネントの minimumSize、preferredSize、maximumSize、および size の各プロパティーの高さで定義されているスプリングを返します。
|
static Spring |
max(Spring s1, Spring s2)
常に
s1 と s2 のいずれよりも大きいか等しい値を持つスプリング max(s1, s2) を返します。 |
static Spring |
minus(Spring s)
s と反対方向に動くスプリング -s を返します。 |
static Spring |
scale(Spring s, float factor)
minimum、preferred、maximum、および value の各プロパティーが引数スプリング
s のプロパティーの倍数になっているスプリングを返します。 |
abstract void |
setValue(int value)
この
Spring の現在の値を value に設定します。 |
static Spring |
sum(Spring s1, Spring s2)
s1 と s2 の直列接続を表すスプリング s1+s2 を返します。 |
static Spring |
width(Component c)
minimum、preferred、maximum、および value の各プロパティーが、それぞれ指定されたコンポーネントの minimumSize、preferredSize、maximumSize、および size の各プロパティーの幅で定義されているスプリングを返します。
|
public static final int UNSET
public abstract int getMinimumValue()
Spring
の minimum 値を返します。Spring
の minimumValue
プロパティーpublic abstract int getPreferredValue()
Spring
の preferred 値を返します。Spring
の preferredValue
public abstract int getMaximumValue()
Spring
の maximum 値を返します。Spring
の maximumValue
プロパティーpublic abstract int getValue()
Spring
の現在の value を返します。Spring
の value
プロパティーsetValue(int)
public abstract void setValue(int value)
Spring
の現在の値を value
に設定します。value
- value
プロパティーの新しい設定getValue()
public static Spring constant(int pref)
pref
を持つスプリング) を返します。pref
- 新しいスプリングの minimum 値、preferred 値、および maximum 値pref
を持つスプリングSpring
public static Spring constant(int min, int pref, int max)
min
、pref
、および max
を持つスプリングを返します。min
- 新しいスプリングの minimum 値pref
- 新しいスプリングの preferred 値max
- 新しいスプリングの maximum 値min
、pref
、および max
を持つスプリングSpring
public static Spring minus(Spring s)
s
と反対方向に動くスプリング -s
を返します。s
と反対方向に動くスプリング -s
Spring
public static Spring sum(Spring s1, Spring s2)
s1
と s2
の直列接続を表すスプリング s1+s2
を返します。2 つのスプリング s1
と s2
の sum である s3
では、s1
、s2
、および s3
の力は、整数 value の精度内で同じレベルに維持されます。圧縮時のスプリングの力は、次のようになります。
value - pref ------------ pref - min引っ張られているときのスプリングの力は、次のようになります。
value - pref ------------ max - pref
setValue
が sum スプリング s3
で呼び出されると、s3
の力は上記のどれかの式を使って計算されます。sum の力が算出されると、s1
と s2
の value は sum の力と等しくなるように設定されます。式の評価には丸め誤差が考慮され、s1
と s2
の value の sum は s3
の value と正確に等しくなります。s1
と s2
の直列接続を表すスプリング s1+s2
Spring
public static Spring max(Spring s1, Spring s2)
s1
と s2
のいずれよりも大きいか等しい値を持つスプリング max(s1, s2)
を返します。s1
と s2
の両方よりも大きいか等しい値を持つスプリング max(s1, s2)
Spring
public static Spring scale(Spring s, float factor)
s
のプロパティーの倍数になっているスプリングを返します。factor
が負の値 (間隔の算術式の規則に従って) の場合、最大値と最小値のプロパティーは入れ替わります。
たとえば、係数が 0.5f の場合、結果はその入力値の「中間点」を表し、コンテナ内でコンポーネントを中央に配置するのに役立ちます。
s
- スケーリングするスプリングfactor
- スケーリングの量。s
のプロパティーに factor
をかけた値になっているスプリングNullPointerException
- s
が null である場合public static Spring width(Component c)
c
- サイズの計算に使用されるコンポーネントNullPointerException
- c
が null である場合public static Spring height(Component c)
c
- サイズの計算に使用されるコンポーネントNullPointerException
- c
が null である場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.