JavaTM 2 Platform
Standard Ed. 5.0

javax.swing
クラス SpinnerDateModel

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 メソッドは、この定数に基づいて日付を前後に変更します。たとえば、calendarFieldCalendar.DAY_OF_WEEK の場合、nextValue は現在の value の 24 時間後の Date を生成し、previousValue は 24 時間前の Date を生成します。

calendarField の有効な値は次のとおりです。

ただし、一部の UI では calendarField を設定してから、編集を確定してカーソルの下にあるフィールドをスピンできます。1 フィールドのみをスピンする場合は、setCalendarField の呼び出しをサブクラス化して無視できます。

このモデルは ChangeListener を継承します。モデルの valuecalendarFieldstartend の各プロパティが変更されたときには、ChangeListeners に変更が通知されます。

導入されたバージョン:
1.4
関連項目:
JSpinner, SpinnerModel, AbstractSpinnerModel, SpinnerListModel, SpinnerNumberModel, Calendar.add(int, int)

フィールドの概要
 
クラス javax.swing.AbstractSpinnerModel から継承されたフィールド
listenerList
 
コンストラクタの概要
SpinnerDateModel()
          初期の value が現在の値で、calendarFieldCalendar.DAY_OF_MONTH に等しく、startend に限度がない 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 を返します。
 Object getPreviousValue()
          シーケンスの前の Date を返します。
 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 を設定します。
 
クラス javax.swing.AbstractSpinnerModel から継承されたメソッド
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

SpinnerDateModel

public SpinnerDateModel(Date value,
                        Comparable start,
                        Comparable end,
                        int calendarField)
start から end までの日付のシーケンスを表す SpinnerDateModel を作成します。nextValue メソッドと previousValue メソッドは、現在の日付である valuecalendarField のタイムユニット分前進または後退させて、シーケンスの要素を計算します。Calendar field の増加または減少についての詳細は、java.util.Calendaradd メソッドを参照してください。

シーケンスの範囲に上限または下限のないことを示すために、start パラメータと end パラメータを null にすることができます。value または calendarFieldnull の場合、あるいは startend の両方が指定されており、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 または calendarFieldnull の場合、calendarField が正当でない場合、あるいは (start <= value <= end) が false の場合
関連項目:
Calendar.add(int, int), setValue(java.lang.Object), setStart(java.lang.Comparable), setEnd(java.lang.Comparable), setCalendarField(int)

SpinnerDateModel

public SpinnerDateModel()
初期の value が現在の値で、calendarFieldCalendar.DAY_OF_MONTH に等しく、startend に限度がない SpinnerDateModel を構築します。

メソッドの詳細

setStart

public void setStart(Comparable start)
このシーケンスの Date の下限を変更します。startnull の場合、下限はありません。ここでは、境界のチェックは行われません。つまり、新しい start の値が、コンストラクタによって適用される不変式 (start <= value <= end) を無効にすることがあります。これは、モデルの更新を単純にするためです。当然、nextValuepreviousValuesetValue の各メソッドを呼び出す前に、不変式が 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) に渡された ObjectDate でない場合、ClassCastException がスローされます。

start が変更されると、このメソッドは ChangeEvent をトリガします。

パラメータ:
start - シーケンスの先頭の日付を定義する
関連項目:
getStart(), setEnd(java.lang.Comparable), AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

getStart

public Comparable getStart()
シーケンスの先頭の Date を返します。

戻り値:
start プロパティの値
関連項目:
setStart(java.lang.Comparable)

setEnd

public void setEnd(Comparable end)
このシーケンスの Date の上限を変更します。startnull の場合、上限はありません。ここでは、境界のチェックは行われません。つまり、新しい start の値が、コンストラクタによって適用される不変式 (start <= value <= end) を無効にすることがあります。これは、モデルの更新を単純にするためです。当然、nextValuepreviousValuesetValue の各メソッドを呼び出す前に、不変式が true になるようにする必要があります。

通常、このプロパティは Date ですが、ComparableDate に対する compareTo メソッドを使用できます。例については、setStart を参照してください。

end が変更されると、このメソッドは ChangeEvent をトリガします。

パラメータ:
end - シーケンスの最後の日付を定義する
関連項目:
getEnd(), setStart(java.lang.Comparable), AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

getEnd

public Comparable getEnd()
シーケンスの最後の Date を返します。

戻り値:
end プロパティの値
関連項目:
setEnd(java.lang.Comparable)

setCalendarField

public void setCalendarField(int calendarField)
nextValue メソッドと previousValue メソッドによって計算される日付値変更のサイズを変更します。calendarField パラメータは、Calendar.MONTHCalendar.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 を返します。

定義:
インタフェース SpinnerModel 内の getNextValue
戻り値:
シーケンスの次の Date。次の日付が end よりあとの場合は null
関連項目:
SpinnerModel.getNextValue(), getPreviousValue(), setCalendarField(int)

getPreviousValue

public Object getPreviousValue()
シーケンスの前の Date を返します。前の日付が start より前の場合は null を返します。

定義:
インタフェース SpinnerModel 内の getPreviousValue
戻り値:
シーケンスの前の 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 のうち、現在の要素を返します。

定義:
インタフェース SpinnerModel 内の getValue
戻り値:
value プロパティ
関連項目:
setValue(java.lang.Object), getDate()

setValue

public void setValue(Object value)
このシーケンスの現在の Date を設定します。valuenull の場合、IllegalArgumentException がスローされます。ここでは、境界のチェックは行われません。つまり、新しい値が、コンストラクタによって適用される不変式 (start <= value <= end) を無効にすることがあります。当然、nextValuepreviousValuesetValue の各メソッドを呼び出す前に、不変式 (start <= value <= maximum) が true になるようにする必要があります。

value が変更されると、このメソッドは ChangeEvent をトリガします。

定義:
インタフェース SpinnerModel 内の setValue
パラメータ:
value - このシーケンスの現在の Date (null 以外)
例外:
IllegalArgumentException - value が null の場合、あるいは Date でない場合
関連項目:
getDate(), getValue(), AbstractSpinnerModel.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 も参照してください。