Класс SpinnerDateModel

Все реализованные интерфейсы:
Serializable, SpinnerModel
public class SpinnerDateModel
extends AbstractSpinnerModel
implements Serializable

Модель для последовательностей Date. Верхняя и нижняя границы последовательности определяются свойствами, называемыми start и end, а размер приращения или уменьшения, вычисляемый методами nextValue и previousValue, определяется свойством calendarField. Свойства start и end могут быть null для указания отсутствия нижней или верхней границы последовательности.

Значение свойства calendarField должно быть одним из констант java.util.Calendar, определяющих поле в Calendar. Методы getNextValue и getPreviousValue изменяют дату вперёд или назад на это количество. Например, если calendarField равно Calendar.DAY_OF_WEEK, то nextValue возвращает Date, которая на 24 часа позже текущей value, а previousValue возвращает Date, которая на 24 часа раньше.

Допустимые значения для 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 перед подтверждением редактирования, чтобы изменить поле под курсором. Если вы хотите изменить только одно поле, вы можете создать подкласс и проигнорировать вызовы setCalendarField.

Эта модель наследует ChangeListener. ChangeListeners уведомляются всякий раз, когда изменяются свойства модели value, calendarField, start или end.

С момента:
1.4
См. также:
JSpinner, SpinnerModel, AbstractSpinnerModel, SpinnerListModel, SpinnerNumberModel, Calendar.add(int, int), Сериализованная форма

Поля

Поля, объявленные в классе javax.swing.AbstractSpinnerModel

listenerList

Краткое описание конструкторов

Конструктор Описание
SpinnerDateModel()

Создаёт SpinnerDateModel, у которого начальное значение value — текущая дата, calendarField равно Calendar.DAY_OF_MONTH, и нет ограничений start/end.

SpinnerDateModel​(Date value, Comparable<Date> start, Comparable<Date> end, int calendarField)

Создаёт SpinnerDateModel, представляющую последовательность дат между start и end.

Краткое описание методов

Модификатор и тип Метод Описание
int getCalendarField()

Возвращает поле Calendar, которое добавляется или вычитается методами nextValue и previousValue.

Date getDate()

Возвращает текущий элемент в этой последовательности Date.

Comparable<Date> getEnd()

Возвращает последнюю Date в последовательности.

Object getNextValue()

Возвращает следующую Date в последовательности или null, если следующая дата после end.

Object getPreviousValue()

Возвращает предыдущую Date в последовательности или null, если предыдущая дата до start.

Comparable<Date> getStart()

Возвращает первую Date в последовательности.

Object getValue()

Возвращает текущий элемент в этой последовательности Date.

void setCalendarField​(int calendarField)

Изменяет размер изменения значения даты, вычисляемого методами nextValue и previousValue.

void setEnd​(Comparable<Date> end)

Изменяет верхнюю границу для Date в этой последовательности.

void setStart​(Comparable<Date> start)

Изменяет нижнюю границу для дат в этой последовательности.

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<Date> start,
                        Comparable<Date> end,
                        int calendarField)

Создаёт SpinnerDateModel, представляющую последовательность дат между start и end. Методы nextValue и previousValue вычисляют элементы последовательности, перемещая текущую дату value вперёд или назад на calendarField единицу времени. Подробное описание того, что означает приращение или уменьшение Calendar field, см. в методе add в java.util.Calendar.

Параметры start и end могут быть null для указания отсутствия верхней или нижней границы диапазона. Если value или calendarField равно null, или если оба start и end указаны и minimum > maximum то выбрасывается IllegalArgumentException. Аналогично, если (minimum <= value <= maximum) ложно, выбрасывается 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).
См. также:
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()

Создаёт SpinnerDateModel, у которого начальное значение value — текущая дата, calendarField равно Calendar.DAY_OF_MONTH, и нет ограничений start/end.

Методы

setStart

public void setStart(Comparable<Date> start)

Изменяет нижнюю границу дат в этой последовательности. Если start равно null, то нижней границы нет. Здесь не выполняется проверка границ: новое начальное значение может нарушить инвариант (start <= value <= end), заданный конструкторами. Это упрощает обновление модели. Естественно, необходимо убедиться, что инвариант верен перед вызовом методов nextValue, previousValue, или setValue.

Обычно это свойство является Date, однако можно использовать Comparable с методом 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);
     }
 }
Обратите внимание, что вышеприведённый пример выбросит ClassCastException, если Object , переданное в compareTo(Object), не является Date.

Этот метод вызывает ChangeEvent, если start изменился.

Параметры:
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 <= value <= end), заданный конструкторами. Естественно, необходимо убедиться, что инвариант верен перед вызовом методов nextValue, previousValue, или setValue.

Обычно это свойство является Date, однако можно использовать Comparable с методом compareTo для Date. Смотрите пример в setStart.

Этот метод вызывает ChangeEvent, если end изменился.

Параметры:
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, таких как Calendar.MONTH или Calendar.MINUTE. Методы nextValue и previousValue просто перемещают указанное поле Calendar вперед или назад на одну единицу с помощью метода Calendar.add. Используйте этот метод с осторожностью, так как некоторые интерфейсы могут устанавливать calendarField до подтверждения редактирования, чтобы прокрутить поле под курсором. Если вы хотите прокрутить только одно поле, вы можете создать подкласс и проигнорировать вызовы 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

Этот метод вызывает ChangeEvent, если calendarField изменился.

См. также:
getCalendarField(), getNextValue(), getPreviousValue(), Calendar.add(int, int), AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

getCalendarField

public int getCalendarField()

Возвращает поле Calendar , к которому добавляется или из которого вычитается значение методами nextValue и previousValue.

Возвращает:
значение свойства calendarField
См. также:
setCalendarField(int)

getNextValue

public Object getNextValue()

Возвращает следующую Date в последовательности или null, если следующая дата следует после end.

Определено в:
getNextValue в интерфейсе SpinnerModel
Возвращает:
следующую Date в последовательности или null, если следующая дата следует после end.
См. также:
SpinnerModel.getNextValue(), getPreviousValue(), setCalendarField(int)

getPreviousValue

public Object getPreviousValue()

Возвращает предыдущую Date в последовательности или null, если предыдущая дата предшествует start.

Определено в:
getPreviousValue в интерфейсе SpinnerModel
Возвращает:
предыдущую Date в последовательности или null, если предыдущая дата предшествует start
См. также:
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), заданный конструкторами. Естественно, необходимо убедиться, что инвариант (start <= value <= maximum) верен перед вызовом методов nextValue, previousValue, или setValue.

Этот метод вызывает ChangeEvent, если value изменился.

Определено в:
setValue в интерфейсе SpinnerModel
Параметры:
value - текущая (не null) Date для этой последовательности
Исключения:
IllegalArgumentException - если значение равно null или не является Date
См. также:
getDate(), getValue(), AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/SpinnerDateModel.html

Spec-Zone .ru
спецификации, руководства, описания, API