- java.lang.Object
-
- javax.swing.AbstractSpinnerModel
-
- javax.swing.SpinnerNumberModel
-
- All Implemented Interfaces:
-
Serializable,SpinnerModel
public class SpinnerNumberModel extends AbstractSpinnerModel implements Serializable
ASpinnerModel用于数字序列。 序列的上限和下限由称为minimum和maximum属性定义。 由nextValue和previousValue方法计算的增加或减少的大小由称为stepSize的属性定义。minimum和maximum属性可以是null以表明序列没有下限或上限。 该类中的所有属性都是根据两种通用类型定义的:Number和Comparable,以便可以Comparable所有Java数值类型。 在内部,有只为值类型为原始的一个支持Number类型:Double,Float,Long,Integer,Short,或Byte。要创建一个
SpinnerNumberModel的整数范围为零到一百,以五十为初始值,可以写: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
-
-
Field Summary
-
Fields inherited from class javax.swing.AbstractSpinnerModel
listenerList
-
-
构造方法摘要
构造方法 Constructor 描述 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的封闭序列。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Comparable<?>getMaximum()返回序列中的最后一个数字。Comparable<?>getMinimum()返回此序列中的第一个数字。ObjectgetNextValue()返回序列中的下一个数字。NumbergetNumber()返回序列的当前元素的值。ObjectgetPreviousValue()返回序列中的前一个数字。NumbergetStepSize()返回由getNextValue和getPreviousValue方法计算的值变化的大小。ObjectgetValue()返回序列的当前元素的值。voidsetMaximum(Comparable<?> maximum)更改此序列中数字的上限。voidsetMinimum(Comparable<?> minimum)更改此序列中数字的下限。voidsetStepSize(Number stepSize)更改由getNextValue和getPreviousValue方法计算的值变化的大小。voidsetValue(Object value)设置此序列的当前值。-
Methods inherited from class 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- 序列中的第一个数字或null -
maximum- 序列中的最后一个数字或null -
stepSize- 序列元素之间的差异 - 异常
-
IllegalArgumentException- 如果stepSize或值为null或如果以下表达式为false:minimum <= value <= maximum
-
SpinnerNumberModel
public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)构建SpinnerNumberModel,具体规定valueminimum/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用相同类型作为值。 例如,如果值是一个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与Number相同的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但是对于具有与该值相同类型的Number,可以使用任何Comparable与compareTo方法。 见setMinimum的一个例子。如果
maximum已更改,此方法将触发ChangeEvent。- 参数
-
maximum-一个Comparable具有compareTo为方法Numbers的相同类型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如果总和小于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)
-
-