Spring
类的一个实例包含三个特性,用于描述其行为:最小值、首选值和最大值。每个特性可能参与定义第四个特性值,根据一系列规则。
Spring
类的一个实例可以被视为一个机械弹簧,当弹簧被压缩或拉伸远离其首选值时,提供一个校正力。这个力被建模为距离首选值的线性函数,但有两个不同的常数--一个用于压缩力,一个用于张力。这些常数由弹簧的最小值和最大值指定,使得当弹簧处于最小值时产生一个与当它处于最大值时产生的相等且相反的力。因此,首选值和最小值之间的差异代表了弹簧可以被压缩的容易程度,而最大值和首选值之间的差异表示了Spring
可以被延伸的容易程度。查看sum(javax.swing.Spring, javax.swing.Spring)
方法获取详细信息。
通过在Spring
上定义简单的算术操作,一组Spring
的行为可以简化为普通(非复合)Spring
的行为。我们定义了Spring
上的"+", "-", max和min运算符,使得在每种情况下,结果是一个Spring
,其特性与其组成弹簧之间具有有用的数学关系。
一个Spring
可以被视为具有单个公共点的一对区间:首选值。以下规则定义了可以应用于区间的一些算术运算符([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
实例,其中包含对方法参数的引用,以便新弹簧的特性跟踪可能变化的原始弹簧的特性。这有点像函数语言中的惰性值的概念。
如果您正在实现SpringLayout
,您可以在The Java Tutorial的How to Use SpringLayout部分中找到更多信息和示例。
警告:此类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans
包中。请参阅XMLEncoder
。
- 自1.4版本起:
- 1.4
- 参见:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic Spring
constant
(int pref) 返回一个支柱--其最小值、首选值和最大值每个具有值pref
的弹簧。static Spring
constant
(int min, int pref, int max) 返回一个弹簧,其最小值、首选值和最大值分别具有值:min
、pref
和max
。abstract int
返回此Spring
的最大值。abstract int
返回此Spring
的最小值。abstract int
返回此Spring
的首选值。abstract int
getValue()
返回此Spring
的当前值。static Spring
返回一个弹簧,其最小值、首选值、最大值和值属性由所提供组件的minimumSize、preferredSize、maximumSize和size属性的高度定义。static Spring
返回max(s1, s2)
:一个弹簧,其值始终大于(或等于)s1
和s2
的值。static Spring
返回-s
:一个与s
方向相反的弹簧。static Spring
返回一个弹簧,其最小值、首选值、最大值和值属性分别是参数弹簧s
的属性的倍数。abstract void
setValue
(int value) 将此Spring
的当前值设置为value
。static Spring
返回s1+s2
:表示s1
和s2
串联的弹簧。static Spring
返回一个弹簧,其最小值、首选值、最大值和值属性由所提供组件的minimumSize、preferredSize、maximumSize和size属性的宽度定义。
-
Field Details
-
UNSET
public static final int UNSET一个整数值,表示属性值尚未计算。- 参见:
-
-
Constructor Details
-
Spring
protected Spring()用于创建Spring
的工厂方法。- 参见:
-
-
Method Details
-
getMinimumValue
public abstract int getMinimumValue()返回此Spring
的最小值。- 返回:
-
此
Spring
的minimumValue
属性
-
getPreferredValue
public abstract int getPreferredValue()返回此Spring
的首选值。- 返回:
-
此
Spring
的preferredValue
-
getMaximumValue
public abstract int getMaximumValue()返回此Spring
的最大值。- 返回:
-
此
Spring
的maximumValue
属性
-
getValue
public abstract int getValue()返回此Spring
的当前值。- 返回:
-
此
Spring
的value
属性 - 参见:
-
setValue
public abstract void setValue(int value) 将此Spring
的当前值设置为value
。- 参数:
-
value
- 新的value
属性设置 - 参见:
-
constant
返回一个支柱--其最小值、首选值和最大值每个具有值pref
的弹簧。- 参数:
-
pref
- 新弹簧的最小值、首选值和最大值 - 返回:
-
一个弹簧,其最小值、首选值和最大值每个具有值
pref
- 参见:
-
constant
返回一个弹簧,其最小值、首选值和最大值分别具有值:min
、pref
和max
。- 参数:
-
min
- 新弹簧的最小值 -
pref
- 新弹簧的首选值 -
max
- 新弹簧的最大值 - 返回:
-
一个弹簧,其最小值、首选值和最大值分别具有值:
min
、pref
和max
- 参见:
-
minus
返回-s
:一个与s
方向相反的弹簧。- 参数:
-
s
- 一个Spring
对象 - 返回:
-
-s
:一个与s
方向相反的弹簧 - 参见:
-
sum
返回s1+s2
:表示串联s1
和s2
的弹簧。在两个弹簧s1
和s2
的和s3
中,s1
、s2
和s3
的应变保持在相同的水平(在其整数值所暗示的精度范围内)。压缩弹簧的应变为:value - pref ------------ pref - min
张力弹簧的应变为:value - pref ------------ max - pref
当在总和弹簧s3
上调用setValue
时,将使用上述公式之一计算s3
中的应变。一旦知道总和的应变,s1
和s2
的值将被设置,以使它们的应变等于总和的应变。这些公式被评估以考虑四舍五入误差,并确保s1
和s2
的值之和恰好等于s3
的值。- 参数:
-
s1
- 一个Spring
对象 -
s2
- 一个Spring
对象 - 返回:
-
s1+s2
:表示串联s1
和s2
的弹簧 - 参见:
-
max
返回max(s1, s2)
:一个弹簧,其值始终大于(或等于)s1
和s2
的值。- 参数:
-
s1
- 一个Spring
对象 -
s2
- 一个Spring
对象 - 返回:
-
max(s1, s2)
:一个弹簧,其值始终大于(或等于)s1
和s2
的值 - 参见:
-
scale
返回一个弹簧,其最小值、首选值、最大值和值属性分别是参数弹簧s
的属性的倍数。当factor
为负时(根据区间算术规则),最小值和最大值属性将被交换。例如,当因子为0.5f时,结果代表其输入的“中点” - 这是用于在容器中居中组件的操作。
- 参数:
-
s
- 要缩放的弹簧 -
factor
- 缩放量 - 返回:
-
一个弹簧,其属性是输入弹簧
s
的属性乘以factor
- 抛出:
-
NullPointerException
- 如果s
为null - 自:
- 1.5
-
width
返回一个弹簧,其最小值、首选值、最大值和值属性由所提供组件的minimumSize、preferredSize、maximumSize和size属性的宽度定义。返回的弹簧是一个“包装”实现,其方法调用所提供组件的适当大小方法。因此,返回的弹簧的最小值、首选值、最大值和值属性报告了组件中适当属性的当前状态,并在其更改时跟踪它们。- 参数:
-
c
- 用于计算大小的组件 - 返回:
- 一个弹簧,其属性由组件的大小方法的水平部分定义。
- 抛出:
-
NullPointerException
- 如果c
为null - 自:
- 1.5
-
height
返回一个弹簧,其最小值、首选值、最大值和值属性由所提供组件的minimumSize、preferredSize、maximumSize和size属性的高度定义。返回的弹簧是一个“包装”实现,其方法调用所提供组件的适当大小方法。因此,返回的弹簧的最小值、首选值、最大值和值属性报告了组件中适当属性的当前状态,并在其更改时跟踪它们。- 参数:
-
c
- 用于计算大小的组件 - 返回:
- 一个弹簧,其属性由组件的大小方法的垂直部分定义。
- 抛出:
-
NullPointerException
- 如果c
为null - 自:
- 1.5
-