public class SpinnerDateModel extends AbstractSpinnerModel implements Serializable
Date
のシーケンスの SpinnerModel
です。シーケンスの上限と下限は、start
および end
というプロパティーによって定義します。nextValue
メソッドと previousValue
メソッドによって計算される増加分または減少分は、calendarField
というプロパティーによって定義します。シーケンスに上限または下限のないことを示すために、start
プロパティーおよび end
プロパティーを null
にすることができます。
calendarField
プロパティーの値は、Calendar
内のフィールドを指定する java.util.Calendar
定数のいずれかである必要があります。getNextValue
メソッドと getPreviousValue
メソッドは、この定数に基づいて日付を前後に変更します。たとえば、calendarField
が Calendar.DAY_OF_WEEK
の場合、nextValue
は現在の value
の 24 時間後の Date
を生成し、previousValue
は 24 時間前の Date
を生成します。
calendarField
の正当な値は次のとおりです。
Calendar.ERA
Calendar.YEAR
Calendar.MONTH
Calendar.WEEK_OF_YEAR
Calendar.WEEK_OF_MONTH
Calendar.DAY_OF_MONTH
Calendar.DAY_OF_YEAR
Calendar.DAY_OF_WEEK
Calendar.DAY_OF_WEEK_IN_MONTH
Calendar.AM_PM
Calendar.HOUR
Calendar.HOUR_OF_DAY
Calendar.MINUTE
Calendar.SECOND
Calendar.MILLISECOND
このモデルは ChangeListener
を継承します。モデルの value
、calendarField
、start
、end
の各プロパティーが変更されたときには、ChangeListeners
に変更が通知されます。
JSpinner
, SpinnerModel
, AbstractSpinnerModel
, SpinnerListModel
, SpinnerNumberModel
, Calendar.add(int, int)
listenerList
コンストラクタと説明 |
---|
SpinnerDateModel()
最初の
value が現在の日付で、calendarField が Calendar.DAY_OF_MONTH に等しく、start と end の限度がない SpinnerDateModel を構築します。 |
SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
start から end までの日付のシーケンスを表す SpinnerDateModel を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
int |
getCalendarField()
nextValue メソッドまたは previousValue メソッドによって加算または減算された Calendar フィールドを返します。 |
Date |
getDate()
このシーケンスの
Date のうち、現在の要素を返します。 |
Comparable |
getEnd()
シーケンスの最後の
Date を返します。 |
Object |
getNextValue()
シーケンスの次の
Date を返します。次の日付が end よりあとの場合は null を返します。 |
Object |
getPreviousValue()
シーケンスの前の
Date を返します。前の日付が start より前の場合は null を返します。 |
Comparable |
getStart()
シーケンスの最初の
Date を返します。 |
Object |
getValue()
このシーケンスの
Date のうち、現在の要素を返します。 |
void |
setCalendarField(int calendarField)
nextValue メソッドと previousValue メソッドによって計算される日付値変更のサイズを変更します。 |
void |
setEnd(Comparable end)
このシーケンスの
Date の上限を変更します。 |
void |
setStart(Comparable start)
このシーケンスの Date の下限を変更します。
|
void |
setValue(Object value)
このシーケンスの現在の
Date を設定します。 |
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
public SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
start
から end
までの日付のシーケンスを表す SpinnerDateModel
を作成します。nextValue
メソッドと previousValue
メソッドは、現在の日付である value
を calendarField
のタイムユニット分前進または後退させて、シーケンスの要素を計算します。Calendar
field
の増加または減少についての詳細は、java.util.Calendar
の add
メソッドを参照してください。
シーケンスの範囲に上限または下限のないことを示すために、start
パラメータと end
パラメータを null
にすることができます。value
または calendarField
が null
の場合、あるいは start
と end
の両方が指定されており、mininum > maximum
の場合、IllegalArgumentException
がスローされます。同様に、(minimum <= value <= maximum)
が false の場合も、IllegalArgumentException がスローされます。
value
- モデルの現在の値 (null
以外)start
- シーケンスの先頭の日付または null
end
- シーケンスの最後の日付または null
calendarField
- 次のいずれか
Calendar.ERA
Calendar.YEAR
Calendar.MONTH
Calendar.WEEK_OF_YEAR
Calendar.WEEK_OF_MONTH
Calendar.DAY_OF_MONTH
Calendar.DAY_OF_YEAR
Calendar.DAY_OF_WEEK
Calendar.DAY_OF_WEEK_IN_MONTH
Calendar.AM_PM
Calendar.HOUR
Calendar.HOUR_OF_DAY
Calendar.MINUTE
Calendar.SECOND
Calendar.MILLISECOND
IllegalArgumentException
- value
または calendarField
が null
の場合、calendarField
が有効でない場合、または (start <= value <= end)
が false である場合。Calendar.add(int, int)
, setValue(java.lang.Object)
, setStart(java.lang.Comparable)
, setEnd(java.lang.Comparable)
, setCalendarField(int)
public SpinnerDateModel()
value
が現在の日付で、calendarField
が Calendar.DAY_OF_MONTH
に等しく、start
と end
の限度がない SpinnerDateModel
を構築します。public void setStart(Comparable start)
start
が null
の場合、下限はありません。ここでは、境界のチェックは行われません。つまり、新しい start の値が、コンストラクタによって適用される不変式 (start <= value <= end)
を無効にすることがあります。これは、モデルの更新を単純にするためです。当然、nextValue
、previousValue
、setValue
の各メソッドを呼び出す前に、不変式が true になるようにする必要があります。
通常、このプロパティーは Date
ですが、Comparable
で Date に対する compareTo
メソッドを使用できます。たとえば、次のように start
をクラスのインスタンスにできます。
MyStartDate implements Comparable { long t = 12345; public int compareTo(Date d) { return (t < d.getTime() ? -1 : (t == d.getTime() ? 0 : 1)); } public int compareTo(Object o) { return compareTo((Date)o); } }上記の例では、
compareTo(Object)
に渡された Object
が Date
でない場合、ClassCastException
がスローされます。
start
が変更されると、このメソッドは ChangeEvent
をトリガーします。
start
- シーケンスの先頭の日付を定義するgetStart()
, setEnd(java.lang.Comparable)
, AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
public Comparable getStart()
Date
を返します。start
プロパティーの値setStart(java.lang.Comparable)
public void setEnd(Comparable end)
Date
の上限を変更します。start
が null
の場合、上限はありません。ここでは、境界のチェックは行われません。つまり、新しい start の値が、コンストラクタによって適用される不変式 (start <= value <= end)
を無効にすることがあります。これは、モデルの更新を単純にするためです。当然、nextValue
、previousValue
、setValue
の各メソッドを呼び出す前に、不変式が true になるようにする必要があります。
通常の場合、このプロパティーは Date
ですが、Comparable
で Date
に対する compareTo
メソッドを使うことができます。
例については、setStart
を参照してください。
end
が変更されると、このメソッドは ChangeEvent
をトリガーします。
end
- シーケンスの最後の日付を定義するgetEnd()
, setStart(java.lang.Comparable)
, AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
public Comparable getEnd()
Date
を返します。end
プロパティーの値setEnd(java.lang.Comparable)
public void setCalendarField(int calendarField)
nextValue
メソッドと previousValue
メソッドによって計算される日付値変更のサイズを変更します。calendarField
パラメータは、Calendar.MONTH
や Calendar.MINUTE
など、Calendar
フィールドの定数のいずれかである必要があります。nextValue
メソッドと previousValue
メソッドは、指定された Calendar
フィールドを、Calendar.add
によって 1 ユニットずつ前後に移動するだけです。一部の UI では calendarField を設定してから、編集を確定してカーソルの下にあるフィールドをスピンできるため、このメソッドを使用するときは注意が必要です。1 フィールドのみをスピンする場合は、setCalendarField の呼び出しをサブクラス化して無視できます。calendarField
- 次のいずれか
Calendar.ERA
Calendar.YEAR
Calendar.MONTH
Calendar.WEEK_OF_YEAR
Calendar.WEEK_OF_MONTH
Calendar.DAY_OF_MONTH
Calendar.DAY_OF_YEAR
Calendar.DAY_OF_WEEK
Calendar.DAY_OF_WEEK_IN_MONTH
Calendar.AM_PM
Calendar.HOUR
Calendar.HOUR_OF_DAY
Calendar.MINUTE
Calendar.SECOND
Calendar.MILLISECOND
calendarField
が変更されると、このメソッドは ChangeEvent
をトリガーします。
getCalendarField()
, getNextValue()
, getPreviousValue()
, Calendar.add(int, int)
, AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
public int getCalendarField()
nextValue
メソッドまたは previousValue
メソッドによって加算または減算された Calendar
フィールドを返します。calendarField
プロパティーの値setCalendarField(int)
public Object getNextValue()
Date
を返します。次の日付が end
よりあとの場合は null
を返します。getNextValue
、インタフェース: SpinnerModel
Date
。次の日付が end
よりあとの場合は null
。SpinnerModel.getNextValue()
, getPreviousValue()
, setCalendarField(int)
public Object getPreviousValue()
Date
を返します。前の日付が start
より前の場合は null
を返します。getPreviousValue
、インタフェース: SpinnerModel
Date
。前の日付が start
より前の場合は null
SpinnerModel.getPreviousValue()
, getNextValue()
, setCalendarField(int)
public Date getDate()
Date
のうち、現在の要素を返します。このメソッドは、(Date)getValue
と同等です。value
プロパティーsetValue(java.lang.Object)
public Object getValue()
Date
のうち、現在の要素を返します。getValue
、インタフェース: SpinnerModel
value
プロパティーsetValue(java.lang.Object)
, getDate()
public void setValue(Object value)
Date
を設定します。value
が null
の場合、IllegalArgumentException
がスローされます。ここでは、境界のチェックは行われません。つまり、新しい値が、コンストラクタによって適用される不変式 (start <= value < end)
を無効にすることがあります。当然、nextValue
、previousValue
、setValue
の各メソッドを呼び出す前に、不変式 (start <= value <= maximum)
が true になるようにする必要があります。
value
が変更されると、このメソッドは ChangeEvent
をトリガーします。
setValue
、インタフェース: SpinnerModel
value
- このシーケンスの現在の Date
(null
以外)IllegalArgumentException
- value が null
の場合、または Date
でない場合getDate()
, getValue()
, AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.