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以降、すべてのJavaBeans(tm)用の長期間の格納サポートが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, 2014, Oracle and/or its affiliates. All rights reserved.