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のpreferredValuepublic 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を持つスプリングSpringpublic static Spring constant(int min, int pref, int max)
min、pref、およびmaxを持つスプリングを返します。min - 新しいスプリングのminimum値pref - 新しいスプリングのpreferred値max - 新しいスプリングのmaximum値min、pref、およびmaxを持つスプリングSpringpublic static Spring minus(Spring s)
sと反対方向に動くスプリング-sを返します。sと反対方向に動くスプリング-sSpringpublic 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+s2Springpublic static Spring max(Spring s1, Spring s2)
s1とs2のいずれよりも大きいか等しい値を持つスプリングmax(s1, s2)を返します。s1とs2の両方よりも大きいか等しい値を持つスプリングmax(s1, s2)Springpublic 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.