public class SpinnerNumberModel extends AbstractSpinnerModel implements Serializable
SpinnerModel
です。シーケンスの上限と下限は、minimum
および maximum
というプロパティーによって定義します。nextValue
メソッドと previousValue
メソッドによって計算される増加分または減少分は、stepSize
というプロパティーによって定義します。シーケンスに上限または下限のないことを示すために、minimum
プロパティーおよび maximum
プロパティーを null
にすることができます。このクラスのプロパティーはすべて、Number
および Comparable
という 2 つのジェネリック型によって定義するため、Java の数値型のすべてに対応できます。内部的には、基本的な Number
型を持つ値、つまり、Double
、Float
、Long
、Integer
、Short
、Byte
のどれかの型を持つ値しかサポートしていません。
初期値が 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
を継承します。モデルの value
、stepSize
、minimum
、maximum
の各プロパティーが変更されたときには、ChangeListeners
に変更が通知されます。
JSpinner
, SpinnerModel
, AbstractSpinnerModel
, SpinnerListModel
, SpinnerDateModel
listenerList
コンストラクタと説明 |
---|
SpinnerNumberModel()
minimum または maximum の値がなく、stepSize が 1、初期値が 0 の 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)
このシーケンスの現在値を設定します。
|
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
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 または value が null
の場合、あるいは minimum <= value <= maximum
が false の場合public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
value
、minimum
/maximum
バウンド、および stepSize
で SpinnerNumberModel
を構築します。value
- モデルの現在値minimum
- シーケンスの先頭の数値maximum
- シーケンスの最後の数値stepSize
- シーケンスの要素間の差IllegalArgumentException
- 次の式が false の場合: minimum <= value <= maximum
public SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
value
、minimum
/maximum
バウンド、および stepSize
で SpinnerNumberModel
を構築します。value
- モデルの現在値minimum
- シーケンスの先頭の数値maximum
- シーケンスの最後の数値stepSize
- シーケンスの要素間の差IllegalArgumentException
- 次の式が false の場合: minimum <= value <= maximum
public SpinnerNumberModel()
minimum
または maximum
の値がなく、stepSize
が 1、初期値が 0 の SpinnerNumberModel
を構築します。public void setMinimum(Comparable minimum)
minimum
が null
の場合、下限はありません。ここでは、境界のチェックは行われません。つまり、新しい minimum
の値が、コンストラクタによって適用される不変式 ((minimum <= value <= maximum)
) を無効にすることがあります。これは、モデルの更新を単純にするためです。当然、getNextValue
、getPreviousValue
、setValue
の各メソッドを呼び出す前に、不変式が 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)
public Comparable getMinimum()
minimum
プロパティーの値setMinimum(java.lang.Comparable)
public void setMaximum(Comparable maximum)
maximum
が null
の場合、上限はありません。ここでは、境界のチェックは行われません。つまり、新しい maximum
の値が、コンストラクタによって適用される不変式 ((minimum <= value < maximum)
) を無効にすることがあります。これは、モデルの更新を単純にするためです。当然、next
、previous
、setValue
の各メソッドを呼び出す前に、不変式が 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)
public Comparable getMaximum()
maximum
プロパティーの値setMaximum(java.lang.Comparable)
public void setStepSize(Number stepSize)
getNextValue
メソッドと getPreviousValue
メソッドによって計算される値変更のサイズを変更します。stepSize
が null
の場合、IllegalArgumentException
がスローされます。
stepSize
が変更されると、このメソッドは ChangeEvent
をトリガーします。
stepSize
- getNextValue
メソッドと getPreviousValue
メソッドによって計算される値変更のサイズgetNextValue()
, getPreviousValue()
, getStepSize()
, SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
public Number getStepSize()
getNextValue
メソッドと getPreviousValue
メソッドによって計算される値変更のサイズを返します。stepSize
プロパティーの値setStepSize(java.lang.Number)
public Object getNextValue()
getNextValue
、インタフェース: SpinnerModel
value + stepSize
、この値が maximum
を超える場合は null
。SpinnerModel.getNextValue()
, getPreviousValue()
, setStepSize(java.lang.Number)
public Object getPreviousValue()
getPreviousValue
、インタフェース: SpinnerModel
value - stepSize
、この値が minimum
未満である場合は null
。SpinnerModel.getPreviousValue()
, getNextValue()
, setStepSize(java.lang.Number)
public Number getNumber()
setValue(java.lang.Object)
public Object getValue()
getValue
、インタフェース: SpinnerModel
setValue(java.lang.Object)
, getNumber()
public void setValue(Object value)
value
が null
の場合、あるいは Number
でない場合、IllegalArgumentException
がスローされます。ここでは、境界のチェックは行われません。つまり、新しい値が、コンストラクタによって適用される不変式 (minimum <= value <= maximum)
を無効にすることがあります。シーケンスで起こりえない値、つまり stepSize
のモジュロでない値に value を設定する可能性もあります。これは、モデルの更新を単純にするためであり、ユーザーが直接入力した値に制限を加えないスピナーに対応するためでもあります。当然、next
、previous
、setValue
の各メソッドを呼び出す前に、不変式 (minimum <= value <= maximum)
が true になるようにする必要があります。
value が変更されると、このメソッドは ChangeEvent
をトリガーします。
setValue
、インタフェース: SpinnerModel
value
- このシーケンスの現在の Number
(null
以外)IllegalArgumentException
- value
が null
の場合、または Number
でない場合getNumber()
, getValue()
, SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.