JavaTM 2 Platform
Standard Ed. 5.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
Standard Ed. 5.0

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

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。