クラスSpinnerNumberModel
- すべての実装されたインタフェース:
Serializable,SpinnerModel
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 = Integer.valueOf(50); Integer min = Integer.valueOf(0); Integer max = Integer.valueOf(100); Integer step = Integer.valueOf(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に変更が通知されます。
- 導入されたバージョン:
- 1.4
- 関連項目:
-
フィールドのサマリー
クラスjavax.swing.AbstractSpinnerModelで宣言されたフィールド
listenerList -
コンストラクタのサマリー
コンストラクタコンストラクタ説明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<?> シーケンスの最後の数値を返します。Comparable<?> このシーケンスの先頭の数値を返します。シーケンスの次の数値を返します。シーケンスの現在の要素の値を返します。シーケンスの前の数値を返します。getNextValueメソッドとgetPreviousValueメソッドによって計算される値変更のサイズを返します。getValue()シーケンスの現在の要素の値を返します。voidsetMaximum(Comparable<?> maximum) このシーケンスの数値の上限を変更します。voidsetMinimum(Comparable<?> minimum) このシーケンスの数値の下限を変更します。voidsetStepSize(Number stepSize) getNextValueメソッドとgetPreviousValueメソッドによって計算される値変更のサイズを変更します。voidこのシーケンスの現在値を設定します。クラスjavax.swing.AbstractSpinnerModelで宣言されたメソッド
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
-
コンストラクタの詳細
-
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の両方が指定されており、minimum > maximumの場合、IllegalArgumentExceptionがスローされます。 同様に、(minimum <= value <= maximum)がfalseの場合も、IllegalArgumentExceptionがスローされます。- パラメータ:
value- モデルの現在の値(null以外)minimum- シーケンスの先頭の数値またはnullmaximum- シーケンスの最後の数値またはnullstepSize- シーケンスの要素間の差- スロー:
IllegalArgumentException- stepSizeまたはvalueがnullの場合、あるいはminimum <= value <= maximumがfalseの場合
-
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、初期値が0のSpinnerNumberModelを構築します。
-
-
メソッドの詳細
-
setMinimum
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
public void setMaximum(Comparable<?> maximum) このシーケンスの数値の上限を変更します。maximumがnullの場合、上限はありません。 ここでは、境界のチェックは行われません。つまり、新しいmaximumの値が、コンストラクタによって適用される不変式((minimum <= value < maximum))を無効にすることがあります。 これは、モデルの更新を単純にするためです。当然、next、previous、setValueの各メソッドを呼び出す前に、不変式がtrueになるようにする必要があります。通常、このプロパティは
valueと同じ型のNumberですが、Comparableで、valueと同じ型のNumberに対するcompareToメソッドを使用できます。 例についてはsetMinimum(Comparable)を参照してください。maximumが変更されると、このメソッドはChangeEventをトリガーします。- パラメータ:
maximum-valueと同じ型のNumberに対するcompareToメソッドを持つComparable- 関連項目:
-
getMaximum
-
setStepSize
public void setStepSize(Number stepSize) getNextValueメソッドとgetPreviousValueメソッドによって計算される値変更のサイズを変更します。stepSizeがnullの場合、IllegalArgumentExceptionがスローされます。stepSizeが変更されると、このメソッドはChangeEventをトリガーします。- パラメータ:
stepSize-getNextValueメソッドとgetPreviousValueメソッドによって計算される値変更のサイズ- 関連項目:
-
getStepSize
public Number getStepSize()getNextValueメソッドとgetPreviousValueメソッドによって計算される値変更のサイズを返します。- 戻り値:
stepSizeプロパティの値- 関連項目:
-
getNextValue
public Object getNextValue()シーケンスの次の数値を返します。- 定義:
getNextValue、インタフェースSpinnerModel- 戻り値:
value+stepSize、この値がmaximumを超える場合はnull。- 関連項目:
-
getPreviousValue
public Object getPreviousValue()シーケンスの前の数値を返します。- 定義:
getPreviousValue、インタフェースSpinnerModel- 戻り値:
value - stepSize、この値がminimum未満である場合はnull。- 関連項目:
-
getNumber
-
getValue
-
setValue
public void setValue(Object value) このシーケンスの現在値を設定します。valueがnullの場合、あるいはNumberでない場合、IllegalArgumentExceptionがスローされます。 ここでは、境界のチェックは行われません。つまり、新しい値が、コンストラクタによって適用される不変式(minimum <= value <= maximum)を無効にすることがあります。 シーケンスで起こりえない値、つまりstepSizeのモジュロでない値を、値に設定する可能性もあります。 これは、モデルの更新を単純にするためであり、ユーザーが直接入力した値に制限を加えないスピナーに対応するためでもあります。 当然、next、previous、setValueの各メソッドを呼び出す前に、不変式(minimum <= value <= maximum)がtrueになるようにする必要があります。valueが変更されると、このメソッドは
ChangeEventをトリガーします。- 定義:
setValue、インタフェースSpinnerModel- パラメータ:
value- このシーケンスの現在のNumber(null以外)- スロー:
IllegalArgumentException-valueがnullの場合、またはNumberでない場合- 関連項目:
-