- 所有已实现的接口:
Serializable,SpinnerModel
SpinnerModel 用于数字序列。序列的上限和下限由称为 minimum 和 maximum 的属性定义。 nextValue 和 previousValue 方法计算的增加或减少的大小由名为 stepSize 的属性定义。 minimum 和 maximum 属性可以是 null 以指示序列没有下限或上限。此类中的所有属性都是根据两个泛型类型定义的:Number 和 Comparable,因此可以容纳所有 Java 数字类型。在内部,仅支持类型为基本 Number 类型之一的值:Double、Float、Long、Integer、Short 或 Byte。
要为整数范围 0 到 100 创建一个 SpinnerNumberModel,初始值为 50,可以这样写:
Integer value = Integer.valueOf(50); Integer min = Integer.valueOf(0); Integer max = Integer.valueOf(100); Integer step = Integer.valueOf(1); SpinnerNumberModel model = new SpinnerNumberModel(value, min, max, step); int fifty = model.getNumber().intValue();
整数和双精度的微调器很常见,因此为这些情况提供了特殊的构造方法。例如,要创建上一个示例中的模型,还可以这样写:
SpinnerNumberModel model = new SpinnerNumberModel(50, 0, 100, 1);
这个模型继承了一个ChangeListener。每当模型的 value、stepSize、minimum 或 maximum 属性发生变化时,ChangeListeners 就会收到通知。
- 自从:
- 1.4
- 参见:
-
字段摘要
在类 javax.swing.AbstractSpinnerModel 中声明的字段
listenerList -
构造方法总结
构造方法构造方法描述构造一个没有minimum或maximum值、stepSize等于 1 且初始值为零的SpinnerNumberModel。SpinnerNumberModel(double value, double minimum, double maximum, double stepSize) 使用指定的value、minimum/maximum边界和stepSize构造一个SpinnerNumberModel。SpinnerNumberModel(int value, int minimum, int maximum, int stepSize) 使用指定的value、minimum/maximum边界和stepSize构造一个SpinnerNumberModel。SpinnerNumberModel(Number value, Comparable<?> minimum, Comparable<?> maximum, Number stepSize) 构造一个SpinnerModel表示从minimum到maximum的封闭数字序列。 -
方法总结
修饰符和类型方法描述Comparable<?>返回序列中的最后一个数字。Comparable<?>返回此序列中的第一个数字。返回序列中的下一个数字。返回序列当前元素的值。返回序列中的前一个数字。返回由getNextValue和getPreviousValue方法计算的值变化的大小。getValue()返回序列当前元素的值。voidsetMaximum(Comparable<?> maximum) 更改此序列中数字的上限。voidsetMinimum(Comparable<?> minimum) 更改此序列中数字的下限。voidsetStepSize(Number stepSize) 更改由getNextValue和getPreviousValue方法计算的值变化的大小。void设置此序列的当前值。在类 javax.swing.AbstractSpinnerModel 中声明的方法
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
-
构造方法详细信息
-
SpinnerNumberModel
public SpinnerNumberModel(Number value, Comparable <?> minimum, Comparable <?> maximum, Number stepSize) 构造一个SpinnerModel表示从minimum到maximum的封闭数字序列。nextValue和previousValue方法分别通过添加或减去stepSize来计算序列的元素。所有参数必须相互Comparable、value和stepSize必须是IntegerLong、Float或Double的实例。minimum和maximum参数可以是null以指示范围没有上限或下限。如果value或stepSize是null,或者如果指定了minimum和maximum以及minimum > maximum则抛出IllegalArgumentException。同样,如果(minimum <= value <= maximum) 为假,则抛出IllegalArgumentException。- 参数:
value- 模型的当前(非null)值minimum- 序列中的第一个数字或nullmaximum- 序列中的最后一个数字或nullstepSize- 序列元素之间的差异- 抛出:
IllegalArgumentException- 如果 stepSize 或值为null或者如果以下表达式为假:minimum <= value <= maximum
-
SpinnerNumberModel
public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize) 使用指定的value、minimum/maximum边界和stepSize构造一个SpinnerNumberModel。- 参数:
value- 模型的当前值minimum- 序列中的第一个数字maximum- 序列中的最后一个数字stepSize- 序列元素之间的差异- 抛出:
IllegalArgumentException- 如果以下表达式为假:minimum <= value <= maximum
-
SpinnerNumberModel
public SpinnerNumberModel(double value, double minimum, double maximum, double stepSize) 使用指定的value、minimum/maximum边界和stepSize构造一个SpinnerNumberModel。- 参数:
value- 模型的当前值minimum- 序列中的第一个数字maximum- 序列中的最后一个数字stepSize- 序列元素之间的差异- 抛出:
IllegalArgumentException- 如果以下表达式为假:minimum <= value <= maximum
-
SpinnerNumberModel
public SpinnerNumberModel()构造一个没有minimum或maximum值、stepSize等于 1 且初始值为零的SpinnerNumberModel。
-
-
方法详情
-
setMinimum
更改此序列中数字的下限。如果minimum是null,则没有下界。这里没有进行边界检查;新的minimum值可能会使构造函数强制执行的(minimum <= value <= maximum)不变量无效。这是为了简化更新模型,自然应该在调用getNextValue、getPreviousValue或setValue方法之前确保不变量为真。通常,此属性是与
value类型相同的Number,但是可以将任何带有compareTo方法的Comparable用于与值具有相同类型的Number。例如,如果值是一个Long,minimum可能是一个像这样定义的 Date 子类:MyDate extends Date { // Date already implements Comparable public int compareTo(Long o) { long t = getTime(); return (t < o.longValue() ? -1 : (t == o.longValue() ? 0 : 1)); } }如果
minimum已更改,此方法将触发ChangeEvent。- 参数:
minimum- 一个Comparable具有用于Number的compareTo方法,其类型与value相同- 参见:
-
getMinimum
返回此序列中的第一个数字。- 返回:
minimum属性的值- 参见:
-
setMaximum
更改此序列中数字的上限。如果maximum是null,则没有上限。这里没有进行边界检查;新的maximum值可能会使构造函数强制执行的(minimum <= value < maximum)不变量无效。这是为了简化更新模型,自然应该在调用next、previous或setValue方法之前确保不变量为真。通常,此属性是与
value类型相同的Number,但是可以将任何带有compareTo方法的Comparable用于与值具有相同类型的Number。有关示例,请参见setMinimum(Comparable)。如果
maximum已更改,此方法将触发ChangeEvent。- 参数:
maximum- 一个Comparable具有用于Number的compareTo方法,其类型与value相同- 参见:
-
getMaximum
返回序列中的最后一个数字。- 返回:
maximum属性的值- 参见:
-
setStepSize
更改由getNextValue和getPreviousValue方法计算的值变化的大小。如果stepSize是null则抛出IllegalArgumentException。如果
stepSize已更改,此方法将触发ChangeEvent。- 参数:
stepSize- 由getNextValue和getPreviousValue方法计算的值变化的大小- 参见:
-
getStepSize
返回由getNextValue和getPreviousValue方法计算的值变化的大小。- 返回:
stepSize属性的值- 参见:
-
getNextValue
返回序列中的下一个数字。- 指定者:
getNextValue在接口SpinnerModel中- 返回:
value + stepSize或null如果总和超过maximum。- 参见:
-
getPreviousValue
返回序列中的前一个数字。- 指定者:
getPreviousValue在接口SpinnerModel中- 返回:
value - stepSize或null如果总和小于minimum。- 参见:
-
getNumber
返回序列当前元素的值。- 返回:
- 值属性
- 参见:
-
getValue
返回序列当前元素的值。- 指定者:
getValue在接口SpinnerModel中- 返回:
- 值属性
- 参见:
-
setValue
设置此序列的当前值。如果value是null,或者不是Number,则抛出IllegalArgumentException。这里没有进行边界检查;新值可能会使构造函数强制执行的(minimum <= value <= maximum)不变量无效。也可以将值设置为序列中不会自然出现的值,即不是模stepSize的值。这是为了简化模型的更新,并适应不想限制用户直接输入的值的微调器。当然,在调用next、previous或setValue方法之前,应确保(minimum <= value <= maximum)不变量为真。如果值已更改,此方法将触发
ChangeEvent。- 指定者:
setValue在接口SpinnerModel中- 参数:
value- 此序列的当前(非null)Number- 抛出:
IllegalArgumentException- 如果value是null或者不是Number- 参见:
-