javax.swing

Class SpinnerDateModel

public class SpinnerDateModel extends AbstractSpinnerModel implements Serializable

A date model used by the {@link JSpinner} component. This implements a spinner model for dates, rotating a calendar field such as month, year, day, week, hour, minute.

Since: 1.4

Constructor Summary
SpinnerDateModel()
Constructs a SpinnerDateModel using the current date, no start or end limit, and {@link Calendar#DAY_OF_MONTH} as the calendar field.
SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
Constructs a SpinnerDateModel with the specified value, lower and upper bounds, and which spins the specified calendar field.
Method Summary
intgetCalendarField()
Returns the {@link Calendar} field used to calculate the previous and next dates in the sequence.
DategetDate()
Returns the current date/time.
ComparablegetEnd()
Returns the upper limit on the date/time value, or null if there is no maximum date/time.
ObjectgetNextValue()
Returns the next date in the sequence, or null if the next date is past the upper limit (if one is specified).
ObjectgetPreviousValue()
Returns the previous date in the sequence, or null if the previous date is prior to the lower limit (if one is specified).
ComparablegetStart()
Returns the lower limit on the date/time value, or null if there is no minimum date/time.
ObjectgetValue()
Returns the current date in the sequence (this method returns the same as {@link #getDate()}).
voidsetCalendarField(int calendarField)
Sets the date field to change when calculating the next and previous values.
voidsetEnd(Comparable end)
Sets the upper limit for the date/time value and, if the new limit is different to the old limit, sends a {@link ChangeEvent} to all registered listeners.
voidsetStart(Comparable start)
Sets the lower limit for the date/time value and, if the new limit is different to the old limit, sends a {@link ChangeEvent} to all registered listeners.
voidsetValue(Object value)
Sets the current date and, if the new value is different to the old value, sends a {@link ChangeEvent} to all registered listeners.

Constructor Detail

SpinnerDateModel

public SpinnerDateModel()
Constructs a SpinnerDateModel using the current date, no start or end limit, and {@link Calendar#DAY_OF_MONTH} as the calendar field.

SpinnerDateModel

public SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
Constructs a SpinnerDateModel with the specified value, lower and upper bounds, and which spins the specified calendar field.

The start and end limits must have a compareTo method that supports instances of {@link Date}, but do not themselves need to be instances of {@link Date} (although typically they are).

Parameters: value the initial value/date (null not permitted). start a constraint that specifies the earliest permitted date value, or null for no lower limit. end a constraint that specifies the latest permitted date value, or null for no upper limit. calendarField the Calendar field to spin, (Calendar.ZONE_OFFSET and Calendar.DST_OFFSET are invalid)

Method Detail

getCalendarField

public int getCalendarField()
Returns the {@link Calendar} field used to calculate the previous and next dates in the sequence.

Returns: The date field code.

getDate

public Date getDate()
Returns the current date/time.

Returns: The current date/time (never null).

See Also: getValue

getEnd

public Comparable getEnd()
Returns the upper limit on the date/time value, or null if there is no maximum date/time.

Returns: The upper limit.

See Also: setEnd

getNextValue

public Object getNextValue()
Returns the next date in the sequence, or null if the next date is past the upper limit (if one is specified). The current date is not changed.

Returns: The next date, or null if the current value is the latest date represented by the model.

See Also: getEnd

getPreviousValue

public Object getPreviousValue()
Returns the previous date in the sequence, or null if the previous date is prior to the lower limit (if one is specified). The current date is not changed.

Returns: The previous date, or null if the current value is the earliest date represented by the model.

See Also: getStart

getStart

public Comparable getStart()
Returns the lower limit on the date/time value, or null if there is no minimum date/time.

Returns: The lower limit.

See Also: setStart

getValue

public Object getValue()
Returns the current date in the sequence (this method returns the same as {@link #getDate()}).

Returns: The current date (never null).

setCalendarField

public void setCalendarField(int calendarField)
Sets the date field to change when calculating the next and previous values. It must be a valid {@link Calendar} field, excluding {@link Calendar#ZONE_OFFSET} and {@link Calendar#DST_OFFSET}.

Parameters: calendarField the calendar field to set.

Throws: IllegalArgumentException if calendarField is not a valid code.

setEnd

public void setEnd(Comparable end)
Sets the upper limit for the date/time value and, if the new limit is different to the old limit, sends a {@link ChangeEvent} to all registered listeners. A null value is interpreted as "no upper limit". No check is made to ensure that the current date/time is on or before the new upper limit - the caller is responsible for ensuring that this relationship holds. In addition, the caller should ensure that end is {@link Serializable}.

Parameters: end the new upper limit for the date/time value (null permitted).

setStart

public void setStart(Comparable start)
Sets the lower limit for the date/time value and, if the new limit is different to the old limit, sends a {@link ChangeEvent} to all registered listeners. A null value is interpreted as "no lower limit". No check is made to ensure that the current date/time is on or after the new lower limit - the caller is responsible for ensuring that this relationship holds. In addition, the caller should ensure that start is {@link Serializable}.

Parameters: start the new lower limit for the date/time value (null permitted).

setValue

public void setValue(Object value)
Sets the current date and, if the new value is different to the old value, sends a {@link ChangeEvent} to all registered listeners.

Parameters: value the new date (null not permitted, must be an instance of Date).

Throws: IllegalArgumentException if value is not an instance of Date.