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。該序列的上下邊界由名為 minimum 和 maximum 的屬性定義。nextValue 和 previousValue 方法計算的增加或減少的大小由名為 stepSize 的屬性定義。該 minimum 和 maximum 屬性可以為 null,指示該序列沒有下限和上限。此類別中的所有屬性都根據以下兩個一般型別定義:Number 和 Comparable,以便適應所有 Java 數字型別。在內部,僅支持其型別為以下某個基本 Number 型別的值:Double、Float、Long、Integer、Short 或 Byte。

要創建從 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。每當該網要的 value、stepSize、minimum 或 maximum 屬性發生變化時,就會通知該 ChangeListeners。

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

欄位摘要
 
從類別 javax.swing.AbstractSpinnerModel 繼承的欄位
listenerList
 
建構子摘要
SpinnerNumberModel()
          建構一個沒有 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)
          建構一個表示從 minimum 到 maximum 的閉區間數字序列的 SpinnerModel。
 
方法摘要
 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
 
從類別 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)
建構一個表示從 minimum 到 maximum 的閉區間數字序列的 SpinnerModel。nextValue 和 previousValue 方法通過分別添加或減去 stepSize 計算該序列的元素。所有參數必須是相互 Comparable 的,value 和 stepSize 必須是 Integer Long、Float 或 Double 的實例。

該 minimum 和 maximum 參數可以為 null,指示該範圍沒有上下邊界。如果 value 或 stepSize 為 null,或者 minimum 和 maximum 兩者都是指定值,且 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)
建構一個具有指定 value、minimum/maximum 邊界和 stepSize 的 SpinnerNumberModel。

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

SpinnerNumberModel

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

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

SpinnerNumberModel

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

方法詳細資訊

setMinimum

public void setMinimum(Comparable minimum)
更改此序列中數字的下邊界。如果 minimum 為 null,則不存在下邊界。此處不進行邊界檢查;新 minimum 值可能會使該建構子強制執行的 (minimum <= value <= maximum) 等式失效。這樣可以簡化更新該網要,調用 getNextValue、getPreviousValue 或 setValue 方法之前自然應該確保該等式為 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 同一型別的 Number 的 compareTo 方法
另請參見:
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 方法之前自然應該確保該等式為 true。

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

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

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

如果 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()
返回該序列中的下一個數字。

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

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

指定者:
介面 SpinnerModel 中的 setValue
參數:
value - 此序列的當前(非 null)Number
拋出:
IllegalArgumentException - 如果 value 為 null 或不為 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。