JavaTM Platform
Standard Ed. 6

javax.swing
类 Spring

java.lang.Object
  继承者 javax.swing.Spring

public abstract class Spring
extends Object

该 Spring 类的实例将存储以下三个表示其行为特征的属性:minimum、preferred 和 maximum 值。根据一系列规则定义其第四个 value 属性时可能涉及其中每一个属性。

该 Spring 类的实例就像从其首选值进行压缩或伸展的 spring 一样,显示为一个提供回复力的机械弹簧。此回复力被建模为从首选值开始的距离的线性函数,但有两个不同的常量 - 一个是压缩力常量,一个是张力常量。这些常量由 spring 的最小值和最大值指定,这样处于最小值的 spring 产生一个与其处于最大值时创建的力相等且相对的力。因此,preferred 和 minimum 值之间的区别表示使用该值压缩 spring 的容易性,其 maximum 和 preferred 值之间的区别指示使用该值扩展 Spring 的容易性。有关详细信息,请参阅 sum(javax.swing.Spring, javax.swing.Spring) 方法。

通过在 Spring 上定义简单的算术运算,可以将 Spring 集合的行为减少到普通(非复合)Spring 的行为。我们在 Spring 上定义 "+"、"-"、max 和 min 运算符,以便每种情况下的结果都是一个 Spring,其特征是将一个有用的数学关系用于其组成的 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 实例,该实例包含对该方法参数的引用,以便新 spring 的特征跟踪原来生成它的 spring 的潜在不断变化的特征。这有点类似于函数性语言中 lazy value 的概念。

如果您正在实现一个 SpringLayout,则可以在 The Java Tutorial 中的 How to Use SpringLayout 一节找到更详细的信息和示例。

警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder。

从以下版本开始:
1.4
另请参见:
SpringLayout, SpringLayout.Constraints

字段摘要
static int UNSET
          一个表示属性值尚未计算的整数值。
 
构造方法摘要
protected Spring()
          由工厂方法创建 Spring 时使用。
 
方法摘要
static Spring constant(int pref)
          返回一个 strut -- 一个其 minimum、preferred 和 maximum 值每个都有值 pref 的 spring。
static Spring constant(int min, int pref, int max)
          返回一个其 minimum、preferred 和 maximum 值具有以下值的 spring:分别是 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)
          返回一个 spring,其 minimum、preferred、maximum 和 value 属性由所提供组件的 minimumSize、preferredSize、maximumSize 和 size 属性的高度定义。
static Spring max(Spring s1, Spring s2)
          返回 max(s1, s2):一个其值始终大于(或等于)s1 加 s2 的值的 spring。
static Spring minus(Spring s)
          返回 -s:一个以与 s 相反方向运行的 spring。
static Spring scale(Spring s, float factor)
          返回一个 spring,其 minimum、preferred、maximum 和 value 属性都是参数 spring s 的属性的倍数。
abstract  void setValue(int value)
          将此 Spring 的当前 value 设置为 value。
static Spring sum(Spring s1, Spring s2)
          返回 s1+s2:一个连续表示 s1 和 s2 的 spring。
static Spring width(Component c)
          返回一个 spring,其 minimum、preferred、maximum 和 value 属性由所提供组件的 minimumSize、preferredSize、maximumSize 和 size 属性的宽度定义。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

UNSET

public static final int UNSET
一个表示属性值尚未计算的整数值。

另请参见:
常量字段值
构造方法详细信息

Spring

protected Spring()
由工厂方法创建 Spring 时使用。

另请参见:
constant(int), constant(int, int, int), max(javax.swing.Spring, javax.swing.Spring), minus(javax.swing.Spring), sum(javax.swing.Spring, javax.swing.Spring), SpringLayout.Constraints
方法详细信息

getMinimumValue

public abstract int getMinimumValue()
返回此 Spring 的 minimum 值。

返回:
此 Spring 的 minimumValue 属性

getPreferredValue

public abstract int getPreferredValue()
返回此 Spring 的 preferred 值。

返回:
此 Spring 的 preferredValue

getMaximumValue

public abstract int getMaximumValue()
返回此 Spring 的 maximum 值。

返回:
此 Spring 的 maximumValue 属性

getValue

public abstract int getValue()
返回此 Spring 的当前 value。

返回:
此 Spring 的 value 属性
另请参见:
setValue(int)

setValue

public abstract void setValue(int value)
将此 Spring 的当前 value 设置为 value。

参数:
value - 该 value 属性的新设置值
另请参见:
getValue()

constant

public static Spring constant(int pref)
返回一个 strut -- 一个其 minimum、preferred 和 maximum 值每个都有值 pref 的 spring。

参数:
pref - 该新 spring 的 minimum、preferred 和 maximum 值
返回:
一个其 minimum、preferred 和 maximum 值每个都有值 pref 的 spring
另请参见:
Spring

constant

public static Spring constant(int min,
                              int pref,
                              int max)
返回一个其 minimum、preferred 和 maximum 值具有以下值的 spring:分别是 min、pref 和 max。

参数:
min - 新 spring 的 minimum 值
pref - 新 spring 的 preferred 值
max - 新 spring 的 maximum 值
返回:
一个其 minimum、preferred 和 maximum 值具有以下值的 spring:分别是 min、pref 和 max
另请参见:
Spring

minus

public static Spring minus(Spring s)
返回 -s:一个以与 s 相反方向运行的 spring。

返回:
-s:一个以与 s 相反方向运行的 spring
另请参见:
Spring

sum

public static Spring sum(Spring s1,
                         Spring s2)
返回 s1+s2:一个连续表示 s1 和 s2 的 spring。从总数上说,s3 等于两个 spring s1 和 s2,s1、s2 和 s3 的 strains 在同一个级别(它们的整数 value 暗示的精度内)上进行维护。压缩形式下的 spring 的 strain 为:
         value - pref
         ------------
          pref - min
 
伸展形式下的 spring 的 strain 为:
         value - pref
         ------------
          max - pref
 
在对总共 spring(也即 s3)调用 setValue 时,使用上述某个公式计算 s3 中的 strain。一旦知道了总共的 strain,就能设置 s1 和 s2 的 value,以使它们的 strain 与总共的 strain 相等。对这些公式进行评诂,以便将舍入错误考虑在内并确保 s1 和 s2 的 value 值的总和正好与 s3 的 value 相等。

返回:
s1+s2:一个连续表示 s1 和 s2 的 spring
另请参见:
Spring

max

public static Spring max(Spring s1,
                         Spring s2)
返回 max(s1, s2):一个其值始终大于(或等于)s1 加 s2 的值的 spring。

返回:
max(s1, s2):一个其值始终大于(或等于)s1 加 s2 的值的 spring
另请参见:
Spring

scale

public static Spring scale(Spring s,
                           float factor)
返回一个 spring,其 minimum、preferred、maximum 和 value 属性都是参数 spring s 的属性的倍数。当 factor 为负(根据间隔算法规则)时,Minimum 和 maximum 属性可以交换。

例如,当因子为 0.5f 时,该结果表示此输入的“中点” - 一种对居中容器中组件很有用的操作。

参数:
s - 要缩放的 spring
factor - 要缩放的量。
返回:
一个 spring,其属性为输入 spring s 乘以 factor 得到的值
抛出:
NullPointerException - 如果 s 为 null
从以下版本开始:
1.5

width

public static Spring width(Component c)
返回一个 spring,其 minimum、preferred、maximum 和 value 属性由所提供组件的 minimumSize、preferredSize、maximumSize 和 size 属性的宽度定义。返回的 spring 是一个“包装器”实现,其方法调用所提供组件的适当大小方法。因此,返回的 spring 的最小、首选、最大和值属性将报告组件中适当属性的当前状态,并在它们发生更改时进行跟踪。

参数:
c - 用于计算大小的组件
返回:
一个 spring,其属性由该组件大小方法的水平组件定义。
抛出:
NullPointerException - 如果 c 为 null
从以下版本开始:
1.5

height

public static Spring height(Component c)
返回一个 spring,其 minimum、preferred、maximum 和 value 属性由所提供组件的 minimumSize、preferredSize、maximumSize 和 size 属性的高度定义。返回的 spring 是一个“包装器”实现,其方法调用所提供组件的适当大小方法。因此,返回的 spring 的最小、首选、最大和值属性将报告组件中适当属性的当前状态,并在它们发生更改时进行跟踪。

参数:
c - 用于计算大小的组件
返回:
一个 spring,其属性由该组件大小方法的垂直组件定义。
抛出:
NullPointerException - 如果 c 为 null
从以下版本开始:
1.5

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。