- java.lang.Object
-
- javax.swing.AbstractSpinnerModel
-
- javax.swing.SpinnerDateModel
-
- すべての実装されたインタフェース:
Serializable
,SpinnerModel
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
に変更が通知されます。- 導入されたバージョン:
- 1.4
- 関連項目:
JSpinner
,SpinnerModel
,AbstractSpinnerModel
,SpinnerListModel
,SpinnerNumberModel
,Calendar.add(int, int)
, 「直列化されたフォーム」
-
-
フィールドのサマリー
-
クラス javax.swing.AbstractSpinnerModelから継承されたフィールド
listenerList
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 SpinnerDateModel()
最初のvalue
が現在の日付で、calendarField
がCalendar.DAY_OF_MONTH
に等しく、start
とend
の限度がないSpinnerDateModel
を構築します。SpinnerDateModel(Date value, Comparable<Date> start, Comparable<Date> end, int calendarField)
start
からend
までの日付のシーケンスを表すSpinnerDateModel
を作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 int
getCalendarField()
nextValue
メソッドまたはpreviousValue
メソッドによって加算または減算されたCalendar
フィールドを返します。Date
getDate()
このシーケンスのDate
のうち、現在の要素を返します。Comparable<Date>
getEnd()
シーケンスの最後のDate
を返します。Object
getNextValue()
シーケンスの次のDate
を返します。次の日付がend
よりあとの場合はnull
を返します。Object
getPreviousValue()
シーケンスの前のDate
を返します。前の日付がstart
より前の場合はnull
を返します。Comparable<Date>
getStart()
シーケンスの最初のDate
を返します。Object
getValue()
このシーケンスのDate
のうち、現在の要素を返します。void
setCalendarField(int calendarField)
nextValue
メソッドとpreviousValue
メソッドによって計算される日付値変更のサイズを変更します。void
setEnd(Comparable<Date> end)
このシーケンスのDate
の上限を変更します。void
setStart(Comparable<Date> start)
このシーケンスのDateの下限を変更します。void
setValue(Object value)
このシーケンスの現在のDate
を設定します。-
クラス javax.swing.AbstractSpinnerModelから継承されたメソッド
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
-
-
-
-
コンストラクタの詳細
-
SpinnerDateModel
public SpinnerDateModel(Date value, Comparable<Date> start, Comparable<Date> end, int calendarField)
start
からend
までの日付のシーケンスを表すSpinnerDateModel
を作成します。nextValue
メソッドとpreviousValue
メソッドは、現在の日付であるvalue
をcalendarField
のタイム・ユニット分前進または後退させて、シーケンスの要素を計算します。Calendar
field
の増加または減少についての詳細は、java.util.Calendar
のadd
メソッドを参照してください。シーケンスの範囲に上限または下限のないことを示すために、
start
パラメータとend
パラメータをnull
にすることができます。value
またはcalendarField
がnull
の場合、あるいはstart
とend
の両方が指定されており、minimum > 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<java.util.Date>)
,setEnd(java.lang.Comparable<java.util.Date>)
,setCalendarField(int)
-
SpinnerDateModel
public SpinnerDateModel()
最初のvalue
が現在の日付で、calendarField
がCalendar.DAY_OF_MONTH
に等しく、start
とend
の限度がないSpinnerDateModel
を構築します。
-
-
メソッドの詳細
-
setStart
public void setStart(Comparable<Date> start)
このシーケンスのDateの下限を変更します。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<java.util.Date>)
,AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
-
getStart
public Comparable<Date> getStart()
シーケンスの最初のDate
を返します。- 戻り値:
start
プロパティの値- 関連項目:
setStart(java.lang.Comparable<java.util.Date>)
-
setEnd
public void setEnd(Comparable<Date> 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<java.util.Date>)
,AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
-
getEnd
public Comparable<Date> getEnd()
シーケンスの最後のDate
を返します。- 戻り値:
end
プロパティの値- 関連項目:
setEnd(java.lang.Comparable<java.util.Date>)
-
setCalendarField
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)
-
getCalendarField
public int getCalendarField()
nextValue
メソッドまたはpreviousValue
メソッドによって加算または減算されたCalendar
フィールドを返します。- 戻り値:
calendarField
プロパティの値- 関連項目:
setCalendarField(int)
-
getNextValue
public Object getNextValue()
シーケンスの次のDate
を返します。次の日付がend
よりあとの場合はnull
を返します。- 定義:
getNextValue
、インタフェース:SpinnerModel
- 戻り値:
- シーケンスの次の
Date
。次の日付がend
よりあとの場合はnull
。 - 関連項目:
SpinnerModel.getNextValue()
,getPreviousValue()
,setCalendarField(int)
-
getPreviousValue
public Object getPreviousValue()
シーケンスの前のDate
を返します。前の日付がstart
より前の場合はnull
を返します。- 定義:
getPreviousValue
、インタフェース:SpinnerModel
- 戻り値:
- シーケンスの前の
Date
。前の日付がstart
より前の場合はnull
- 関連項目:
SpinnerModel.getPreviousValue()
,getNextValue()
,setCalendarField(int)
-
getDate
public Date getDate()
このシーケンスのDate
のうち、現在の要素を返します。 このメソッドは、(Date)getValue
と同等です。- 戻り値:
value
プロパティ- 関連項目:
setValue(java.lang.Object)
-
getValue
public Object getValue()
このシーケンスのDate
のうち、現在の要素を返します。- 定義:
getValue
、インタフェース:SpinnerModel
- 戻り値:
value
プロパティ- 関連項目:
setValue(java.lang.Object)
,getDate()
-
setValue
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)
-
-