JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 SpinnerNumberModel

java.lang.Object
  繼承者 javax.swing.AbstractSpinnerModel
      繼承者 javax.swing.SpinnerNumberModel
所有已實作的介面:
Serializable, SpinnerModel

public class SpinnerNumberModel
extends AbstractSpinnerModel
implements Serializable

用於數字序列的 SpinnerModel。該序列的上下邊界由名為 minimummaximum 的屬性定義。nextValuepreviousValue 方法計算的增加或減少的大小由名為 stepSize 的屬性定義。該 minimummaximum 屬性可以為 null,指示該序列沒有下限和上限。此類別中的所有屬性都根據以下兩個一般型別定義:NumberComparable,以便適應所有 Java 數字型別。在內部,僅支持其型別為以下某個基本 Number 型別的值:DoubleFloatLongIntegerShortByte

要創建從 0 到 100 整數範圍(初始值為 50)的 SpinnerNumberModel,可以寫入:

 
 Integer value = new Integer(50); 
Integer min = new Integer(0);
 Integer max = new Integer(100); 
 Integer step = new Integer(1); 
 SpinnerNumberModel model = new SpinnerNumberModel(value, min, max, step); 
 int fifty = model.getNumber().intValue(); 
 

Integer 和 double 的 spinner 是很常見的,因此提供了針對這些情況的特殊建構子。例如,要創建前一範例中的網要,也可以寫入:

 
 SpinnerNumberModel model = new SpinnerNumberModel(50, 0, 100, 1); 
 

此網要繼承的是一個 ChangeListener。每當該網要的 valuestepSizeminimummaximum 屬性發生變化時,就會通知該 ChangeListeners

從以下版本開始:
1.4
另請參見:
JSpinner, SpinnerModel, AbstractSpinnerModel, SpinnerListModel, SpinnerDateModel

欄位摘要
 
從類別 javax.swing.AbstractSpinnerModel 繼承的欄位
listenerList
 
建構子摘要
SpinnerNumberModel()
          建構一個沒有 minimummaximum 值、stepSize 等於 1 且初始值為零的 SpinnerNumberModel
SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
          建構一個具有指定 valueminimum/maximum 邊界和 stepSizeSpinnerNumberModel
SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
          建構一個具有指定 valueminimum/maximum 邊界和 stepSizeSpinnerNumberModel
SpinnerNumberModel(Number value, Comparable minimum, Comparable maximum, Number stepSize)
          建構一個表示從 minimummaximum 的閉區間數字序列的 SpinnerModel
 
方法摘要
 Comparable getMaximum()
          返回該序列中的最後一個數字。
 Comparable getMinimum()
          返回此序列中的第一個數字。
 Object getNextValue()
          返回該序列中的下一個數字。
 Number getNumber()
          返回該序列的當前元素的值。
 Object getPreviousValue()
          返回該序列中的上一個數字。
 Number getStepSize()
          返回由 getNextValuegetPreviousValue 方法計算的值更改的大小。
 Object getValue()
          返回該序列的當前元素的值。
 void setMaximum(Comparable maximum)
          更改此序列中數字的上邊界。
 void setMinimum(Comparable minimum)
          更改此序列中數字的下邊界。
 void setStepSize(Number stepSize)
          更改由 getNextValuegetPreviousValue 方法計算的值更改的大小。
 void setValue(Object value)
          設置此序列的當前元素。
 
從類別 javax.swing.AbstractSpinnerModel 繼承的方法
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

SpinnerNumberModel

public SpinnerNumberModel(Number value,
                          Comparable minimum,
                          Comparable maximum,
                          Number stepSize)
建構一個表示從 minimummaximum 的閉區間數字序列的 SpinnerModelnextValuepreviousValue 方法通過分別添加或減去 stepSize 計算該序列的元素。所有參數必須是相互 Comparable 的,valuestepSize 必須是 Integer LongFloatDouble 的實例。

minimummaximum 參數可以為 null,指示該範圍沒有上下邊界。如果 valuestepSizenull,或者 minimummaximum 兩者都是指定值,且 mininum > maximum,則拋出一個 IllegalArgumentException。同樣,如果 (minimum <= value <= maximum) 為 false,則拋出一個 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)
建構一個具有指定 valueminimum/maximum 邊界和 stepSizeSpinnerNumberModel

參數:
value - 該網要的當前值
minimum - 該序列中的第一個數
maximum - 該序列中的最後一個數
stepSize - 該序列中元素之間的區別
拋出:
IllegalArgumentException - 如果以下表達式為 false:minimum <= value <= maximum

SpinnerNumberModel

public SpinnerNumberModel(double value,
                          double minimum,
                          double maximum,
                          double stepSize)
建構一個具有指定 valueminimum/maximum 邊界和 stepSizeSpinnerNumberModel

參數:
value - 該網要的當前值
minimum - 該序列中的第一個數
maximum - 該序列中的最後一個數
stepSize - 該序列中元素之間的區別
拋出:
IllegalArgumentException - 如果以下表達式為 false:minimum <= value <= maximum

SpinnerNumberModel

public SpinnerNumberModel()
建構一個沒有 minimummaximum 值、stepSize 等於 1 且初始值為零的 SpinnerNumberModel

方法詳細資訊

setMinimum

public void setMinimum(Comparable minimum)
更改此序列中數字的下邊界。如果 minimumnull,則不存在下邊界。此處不進行邊界檢查;新 minimum 值可能會使該建構子強制執行的 (minimum <= value <= maximum) 等式失效。這樣可以簡化更新該網要,調用 getNextValuegetPreviousValuesetValue 方法之前自然應該確保該等式為 true。

通常,此屬性是一個與 value 同一型別的 Number,但是,與該值同一型別 Number 可以使用具有 compareTo 方法的任何 Comparable。例如,如果值為 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,它具有與 value 同一型別的 NumbercompareTo 方法
另請參見:
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)
更改此序列中數字的上邊界。如果 maximumnull,則不存在上邊界。此處不進行邊界檢查;新 maximum 值可能會使該建構子強制執行的 (minimum <= value < maximum) 等式失效。這樣可以簡化更新該網要,調用 nextprevioussetValue 方法之前自然應該確保該等式為 true。

通常,此屬性是一個與 value 同一型別的 Number,但是,與該值同一型別 Number 可以使用具有 compareTo 方法的任何 Comparable。有關範例,請參閱 setMinimum

如果 maximum 已經更改,則此方法會觸發一個 ChangeEvent

參數:
maximum - 一個 Comparable,它具有與 value 同一型別的 NumbercompareTo 方法
另請參見:
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)
更改由 getNextValuegetPreviousValue 方法計算的值更改的大小。如果 stepSizenull,則拋出一個 IllegalArgumentException

如果 stepSize 已經更改,則此方法會觸發一個 ChangeEvent

參數:
stepSize - 由 getNextValuegetPreviousValue 方法計算的值更改的大小
另請參見:
getNextValue(), getPreviousValue(), getStepSize(), SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

getStepSize

public Number getStepSize()
返回由 getNextValuegetPreviousValue 方法計算的值更改的大小。

返回:
stepSize 屬性的值
另請參見:
setStepSize(java.lang.Number)

getNextValue

public Object getNextValue()
返回該序列中的下一個數字。

指定者:
介面 SpinnerModel 中的 getNextValue
返回:
value + stepSize,如果和超過 maximum,則返回 null
另請參見:
SpinnerModel.getNextValue(), getPreviousValue(), setStepSize(java.lang.Number)

getPreviousValue

public Object getPreviousValue()
返回該序列中的上一個數字。

指定者:
介面 SpinnerModel 中的 getPreviousValue
返回:
value - stepSize,如果和小於 minimum,則返回 null
另請參見:
SpinnerModel.getPreviousValue(), getNextValue(), setStepSize(java.lang.Number)

getNumber

public Number getNumber()
返回該序列的當前元素的值。

返回:
值屬性
另請參見:
setValue(java.lang.Object)

getValue

public Object getValue()
返回該序列的當前元素的值。

指定者:
介面 SpinnerModel 中的 getValue
返回:
值屬性
另請參見:
setValue(java.lang.Object), getNumber()

setValue

public void setValue(Object value)
設置此序列的當前元素。如果 valuenull,或不為 Number,則拋出一個 IllegalArgumentException。此處不進行邊界檢查;新值可能會使該建構子強制執行的 (minimum <= value <= maximum) 等式失效。還可以將該值設置為不會在該序列中自然出現的值,即一個不以 stepSize 為模的值。這樣做是為了簡化更新該網要,也是為了適應不希望限制由使用者直接輸入的值的 spinner。很自然,調用 nextprevioussetValue 方法之前應該確保 (minimum <= value <= maximum) 等式為 true。

如果該值已更改,則此方法會觸發一個 ChangeEvent

指定者:
介面 SpinnerModel 中的 setValue
參數:
value - 此序列的當前(非 nullNumber
拋出:
IllegalArgumentException - 如果 valuenull 或不為 Number
另請參見:
getNumber(), getValue(), SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only