- java.lang.Object
-
- javax.swing.AbstractSpinnerModel
-
- javax.swing.SpinnerNumberModel
-
- 实现的所有接口
-
Serializable
,SpinnerModel
public class SpinnerNumberModel extends AbstractSpinnerModel implements Serializable
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
。 该ChangeListeners
通知每当模型value
,stepSize
,minimum
,或maximum
性质的变化。- 从以下版本开始:
- 1.4
- 另请参见:
-
JSpinner
,SpinnerModel
,AbstractSpinnerModel
,SpinnerListModel
,SpinnerDateModel
, Serialized Form
-
-
字段汇总
-
声明的属性在类 javax.swing.AbstractSpinnerModel
listenerList
-
-
构造方法摘要
构造方法 构造器 描述 SpinnerNumberModel()
构造SpinnerNumberModel
其中没有minimum
或maximum
值,stepSize
等于1,初始值为零。SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
构造一个SpinnerNumberModel
带有指定value
,minimum
/maximum
界限,stepSize
。SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
构造一个SpinnerNumberModel
带有指定value
,minimum
/maximum
界限,stepSize
。SpinnerNumberModel(Number value, Comparable<?> minimum, Comparable<?> maximum, Number stepSize)
构造一个SpinnerModel
,表示从minimum
到maximum
的闭合数字序列。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 Comparable<?>
getMaximum()
返回序列中的最后一个数字。Comparable<?>
getMinimum()
返回此序列中的第一个数字。Object
getNextValue()
返回序列中的下一个数字。Number
getNumber()
返回序列的当前元素的值。Object
getPreviousValue()
返回序列中的前一个数字。Number
getStepSize()
返回getNextValue
和getPreviousValue
方法计算的值更改的大小。Object
getValue()
返回序列的当前元素的值。void
setMaximum(Comparable<?> maximum)
更改此序列中数字的上限。void
setMinimum(Comparable<?> minimum)
更改此序列中数字的下限。void
setStepSize(Number stepSize)
更改getNextValue
和getPreviousValue
方法计算的值更改的大小。void
setValue(Object value)
设置此序列的当前值。-
声明方法的类 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
必须的情况下Integer
Long
,Float
,或Double
。minimum
和maximum
参数可以是null
,表示该范围没有上限或下限。 如果value
或stepSize
是null
,或者如果指定了minimum
和maximum
并且minimum > maximum
则抛出IllegalArgumentException
。 同样,如果(minimum <= value <= maximum
)为假,则抛出IllegalArgumentException
。- 参数
-
value
- 模型的当前(非null
)值 -
minimum
- 序列中的第一个数字或null
-
maximum
- 序列中的最后一个数字或null
-
stepSize
- 序列元素之间的差异 - 异常
-
IllegalArgumentException
- 如果stepSize或value为null
或者如果以下表达式为false:minimum <= value <= maximum
-
SpinnerNumberModel
public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
构造一个SpinnerNumberModel
带有指定value
,minimum
/maximum
界限,stepSize
。- 参数
-
value
- 模型的当前值 -
minimum
- 序列中的第一个数字 -
maximum
- 序列中的最后一个数字 -
stepSize
- 序列元素之间的差异 - 异常
-
IllegalArgumentException
- 如果以下表达式为false:minimum <= value <= maximum
-
SpinnerNumberModel
public SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
构造一个SpinnerNumberModel
带有指定value
,minimum
/maximum
界限,stepSize
。- 参数
-
value
- 模型的当前值 -
minimum
- 序列中的第一个数字 -
maximum
- 序列中的最后一个数字 -
stepSize
- 序列元素之间的差异 - 异常
-
IllegalArgumentException
- 如果以下表达式为false:minimum <= value <= maximum
-
SpinnerNumberModel
public SpinnerNumberModel()
构造SpinnerNumberModel
其中没有minimum
或maximum
值,stepSize
等于1,初始值为零。
-
-
方法详细信息
-
setMinimum
public void setMinimum(Comparable<?> minimum)
更改此序列中数字的下限。 如果minimum
是null
,那么没有下限。 这里没有边界检查; 新的minimum
值可能会使构造函数强制执行的(minimum <= value <= maximum)
不变量无效。 这是为了简化更新该模式,自然应该确保该等式是调用之前真正getNextValue
,getPreviousValue
,或setValue
方法。典型地,这个属性是一个
Number
的相同类型的value
然而有可能使用任何Comparable
带有compareTo
方法用于Number
用相同类型作为值。 例如,如果value是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
,其compareTo
方法为Number
s,类型与value
- 另请参见:
-
getMinimum()
,setMaximum(java.lang.Comparable<?>)
,SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
-
getMinimum
public Comparable<?> getMinimum()
返回此序列中的第一个数字。- 结果
-
minimum
属性的值 - 另请参见:
-
setMinimum(java.lang.Comparable<?>)
-
setMaximum
public void setMaximum(Comparable<?> maximum)
更改此序列中数字的上限。 如果maximum
是null
,那么没有上限。 这里没有边界检查; 新的maximum
值可能会使构造函数强制执行的(minimum <= value < maximum)
不变量无效。 这是为了简化更新该模式,自然应该确保该等式是调用之前真正next
,previous
,或setValue
方法。通常,此属性是与
Number
相同类型的value
但是可以使用任何Comparable
和compareTo
方法用于Number
,其类型与值相同。 有关示例 ,请参见setMinimum(Comparable)
。如果
maximum
已更改,则此方法将触发ChangeEvent
。- 参数
-
maximum
-Comparable
,其compareTo
方法,适用于Number
s,类型与value
- 另请参见:
-
getMaximum()
,setMinimum(java.lang.Comparable<?>)
,SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
-
getMaximum
public Comparable<?> getMaximum()
返回序列中的最后一个数字。- 结果
-
maximum
属性的值 - 另请参见:
-
setMaximum(java.lang.Comparable<?>)
-
setStepSize
public void setStepSize(Number stepSize)
更改getNextValue
和getPreviousValue
方法计算的值更改的大小。 一个IllegalArgumentException
如果抛出stepSize
为null
。如果
stepSize
已更改,则此方法将触发ChangeEvent
。- 参数
-
stepSize
- 由getNextValue
和getPreviousValue
方法计算的值更改的大小 - 另请参见:
-
getNextValue()
,getPreviousValue()
,getStepSize()
,SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
-
getStepSize
public Number getStepSize()
返回getNextValue
和getPreviousValue
方法计算的值更改的大小。- 结果
-
stepSize
属性的值 - 另请参见:
-
setStepSize(java.lang.Number)
-
getNextValue
public Object getNextValue()
返回序列中的下一个数字。- Specified by:
-
getNextValue
在界面SpinnerModel
- 结果
-
value + stepSize
或null
如果总和超过maximum
。 - 另请参见:
-
SpinnerModel.getNextValue()
,getPreviousValue()
,setStepSize(java.lang.Number)
-
getPreviousValue
public Object getPreviousValue()
返回序列中的前一个数字。- Specified by:
-
getPreviousValue
在界面SpinnerModel
- 结果
-
如果总和小于
value - stepSize
,null
value - stepSize
或minimum
。 - 另请参见:
-
SpinnerModel.getPreviousValue()
,getNextValue()
,setStepSize(java.lang.Number)
-
getNumber
public Number getNumber()
返回序列的当前元素的值。- 结果
- 价值属性
- 另请参见:
-
setValue(java.lang.Object)
-
getValue
public Object getValue()
返回序列的当前元素的值。- Specified by:
-
getValue
在界面SpinnerModel
- 结果
- 价值属性
- 另请参见:
-
setValue(java.lang.Object)
,getNumber()
-
setValue
public void setValue(Object value)
设置此序列的当前值。 如果value
是null
,或者不是Number
,则抛出IllegalArgumentException
。 这里没有边界检查; 新值可能会使构造函数强制执行的(minimum <= value <= maximum)
不变量无效。 也可以将值设置为序列中不会自然出现的值,即不是stepSize
的模stepSize
。 这是为了简化模型的更新,并适应不想限制用户直接输入的值的微调器。 当然,应该确保(minimum <= value <= maximum)
不变的是调用之前真正next
,previous
,或setValue
方法。如果值已更改,则此方法将触发
ChangeEvent
。- Specified by:
-
setValue
接口SpinnerModel
- 参数
-
value
- 此序列的当前(非null
)Number
- 异常
-
IllegalArgumentException
- 如果value
是null
或者不是Number
- 另请参见:
-
getNumber()
,getValue()
,SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
-
-