JavaTM 2
Platform
Std. Ed. v1.4.0

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 という 2 つの汎用型によって定義するため、Java の数値型のすべてに対応できます。内部的には、基本的な Number 型を持つ値、つまり、DoubleFloatLongIntegerShortByte のどれかの型を持つ値しかサポートしていません。

初期値が 50 で、0 〜 100 の整数を表す 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 型のスピナが一般的なので、これらの型に対応した専用のコンストラクタが用意されています。たとえば、前の例のモデルを作成する場合、次のように記述することもできます。

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

このモデルは ChangeListener を継承します。モデルの valuestepSizeminimummaximum の各プロパティが変更されたときには、ChangeListeners に変更が通知されます。

導入されたバージョン:
1.4
関連項目:
JSpinner, SpinnerModel, AbstractSpinnerModel, SpinnerListModel, SpinnerDateModel

フィールドの概要
 
クラス javax.swing.AbstractSpinnerModel から継承したフィールド
listenerList
 
コンストラクタの概要
SpinnerNumberModel()
          minimum および maximum の値を指定せず、stepSize を 1、初期値を 0 にして SpinnerNumberModel を構築します。
SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
          指定された value、境界 (minimum/maximum)、および stepSizeSpinnerNumberModel を構築します。
SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
          指定された value、境界 (minimum/maximum)、および stepSizeSpinnerNumberModel を構築します。
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 である必要があり、valuestepSize は、IntegerLongFloat、または Double のインスタンスである必要があります。

シーケンスの範囲に上限または下限のないことを示すために、minimum パラメータと maximum パラメータを null にすることができます。value または stepSizenull の場合、あるいは minimummaximum の両方が指定されており、mininum > maximum の場合、IllegalArgumentException がスローされます。同様に、(minimum <= value <= maximum) が false の場合も、IllegalArgumentException がスローされます。

パラメータ:
value - モデルの現在の値 (null 以外)
minimum - シーケンスの先頭の数値または null
maximum - シーケンスの最後の数値または null
stepSize - シーケンスの要素間の差
例外:
IllegalArgumentException - stepSize または value が null の場合、あるいは minimum <= value <= maximum が false の場合

SpinnerNumberModel

public SpinnerNumberModel(int value,
                          int minimum,
                          int maximum,
                          int stepSize)
指定された value、境界 (minimum/maximum)、および stepSizeSpinnerNumberModel を構築します。

パラメータ:
value - モデルの現在値
minimum - シーケンスの先頭の数値
maximum - シーケンスの最後の数値
stepSize - シーケンスの要素間の差
例外:
IllegalArgumentException - minimum <= value <= maximum が false の場合

SpinnerNumberModel

public SpinnerNumberModel(double value,
                          double minimum,
                          double maximum,
                          double stepSize)
指定された value、境界 (minimum/maximum)、および stepSizeSpinnerNumberModel を構築します。

パラメータ:
value - モデルの現在値
minimum - シーケンスの先頭の数値
maximum - シーケンスの最後の数値
stepSize - シーケンスの要素間の差
例外:
IllegalArgumentException - minimum <= value <= maximum が false の場合

SpinnerNumberModel

public SpinnerNumberModel()
minimum および maximum の値を指定せず、stepSize を 1、初期値を 0 にして SpinnerNumberModel を構築します。

メソッドの詳細

setMinimum

public void setMinimum(Comparable minimum)
このシーケンスの数値の下限を変更します。minimumnull の場合、下限はありません。ここでは、境界のチェックは行われません。つまり、新しい minimum の値が、コンストラクタによって適用される不変式 (minimum <= value <= maximum) を無効にすることがあります。これは、モデルの更新を単純にするためです。当然、getNextValuegetPreviousValuesetValue の各メソッドを呼び出す前に、不変式が true になるようにする必要があります。

通常の場合、このプロパティは value と同じ型の Number ですが、Comparable で、value と同じ型の Number に対する compareTo メソッドを使うことができます。たとえば、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 - value と同じ型の Number に対する compareTo メソッドを持つ Comparable
関連項目:
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 ですが、Comparable で、value と同じ型の Number に対する compareTo メソッドを使うことができます。例については、setMinimum を参照してください。

maximum が変更されると、このメソッドは ChangeEvent をトリガします。

パラメータ:
maximum - value と同じ型の Number に対する compareTo メソッドを持つ Comparable
関連項目:
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 メソッドによって計算される値変更のサイズを変更します。stepSizenull の場合、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()
シーケンスの現在の要素の値を返します。

戻り値:
value プロパティ
関連項目:
setValue(java.lang.Object)

getValue

public Object getValue()
シーケンスの現在の要素の値を返します。

定義:
インタフェース SpinnerModel 内の getValue
戻り値:
value プロパティ
関連項目:
setValue(java.lang.Object), getNumber()

setValue

public void setValue(Object value)
このシーケンスの現在値を設定します。valuenull の場合、あるいは Number でない場合、IllegalArgumentException がスローされます。ここでは、境界のチェックは行われません。つまり、新しい値が、コンストラクタによって適用される不変式 (minimum <= value <= maximum) を無効にすることがあります。シーケンスで起こりえない値、つまり stepSize のモジュロでない値に value を設定する可能性もあります。これは、モデルの更新を単純にするためであり、ユーザが直接入力した値に制限を加えないスピナに対応するためでもあります。当然、nextprevioussetValue の各メソッドを呼び出す前に、不変式 (minimum <= value <= maximum) が true になるようにする必要があります。

value が変更されると、このメソッドは ChangeEvent をトリガします。

定義:
インタフェース SpinnerModel 内の setValue
パラメータ:
value - このシーケンスの現在の Number (null 以外)
例外:
IllegalArgumentException - valuenull の場合、あるいは Number でない場合
関連項目:
getNumber(), getValue(), SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.