Класс SpinnerNumberModel
- Все реализуемые интерфейсы:
Serializable, SpinnerModel
public class SpinnerNumberModel extends AbstractSpinnerModel implements Serializable
SpinnerModel для последовательностей чисел. Верхняя и нижняя границы последовательности задаются свойствами, которые называются minimum и maximum. Размер увеличения или уменьшения, вычисляемого методами nextValue и previousValue, задаётся свойством, которое называется stepSize. Свойствам minimum и maximum можно присвоить значение null, чтобы указать, что у последовательности нет нижнего или верхнего предела. Все свойства этого класса определены с использованием двух обобщённых типов: Number и Comparable, поэтому могут использоваться все числовые типы Java. Внутри поддерживаются только значения типов примитивных Number: Double, Float, Long, Integer, Short или Byte. Чтобы создать SpinnerNumberModel для целочисленного диапазона от нуля до ста с начальным значением пятьдесят, можно написать:
Integer value = Integer.valueOf(50); Integer min = Integer.valueOf(0); Integer max = Integer.valueOf(100); Integer step = Integer.valueOf(1); SpinnerNumberModel model = new SpinnerNumberModel(value, min, max, step); int fifty = model.getNumber().intValue();
Счётчики для целых чисел и чисел с плавающей точкой двойной точности широко распространены, поэтому для этих случаев предусмотрены специальные конструкторы. Например, чтобы создать модель из предыдущего примера, можно также написать:
SpinnerNumberModel model = new SpinnerNumberModel(50, 0, 100, 1);
Эта модель наследует ChangeListener. ChangeListeners получают уведомления при изменении свойств модели value, stepSize, minimum или maximum.
- С версии:
- 1.4
- См. также:
Краткое описание полей
Поля, объявленные в классе AbstractSpinnerModel
listenerList | Модификатор и тип | Поле | Описание |
|---|---|---|
protected EventListenerList |
listenerList |
Список ChangeListener для этой модели. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SpinnerNumberModel() |
Создаёт SpinnerNumberModel без значений minimum и maximum, с stepSize, равным единице, и начальным значением, равным нулю. |
SpinnerNumberModel |
Создаёт SpinnerNumberModel с указанными value, границами minimum/maximum и stepSize. |
SpinnerNumberModel |
Создаёт SpinnerNumberModel с указанными value, границами minimum/maximum и stepSize. |
SpinnerNumberModel |
Создаёт SpinnerModel, представляющую собой замкнутую последовательность чисел от minimum до maximum. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Comparable |
getMaximum() |
Возвращает последнее число в последовательности. |
Comparable |
getMinimum() |
Возвращает первое число в этой последовательности. |
Object |
getNextValue() |
Возвращает следующее число в последовательности. |
Number |
getNumber() |
Возвращает значение текущего элемента последовательности. |
Object |
getPreviousValue() |
Возвращает предыдущее число в последовательности. |
Number |
getStepSize() |
Возвращает величину изменения значения, вычисляемого методами getNextValue и getPreviousValue. |
Object |
getValue() |
Возвращает значение текущего элемента последовательности. |
void |
setMaximum |
Изменяет верхнюю границу чисел в этой последовательности. |
void |
setMinimum |
Изменяет нижнюю границу чисел в этой последовательности. |
void |
setStepSize |
Изменяет величину изменения значения, вычисляемого методами getNextValue и getPreviousValue. |
void |
setValue |
Задаёт текущее значение этой последовательности. |
Методы, объявленные в классе AbstractSpinnerModel
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addChangeListener |
Добавляет ChangeListener в список слушателей модели. |
protected void |
fireStateChanged() |
Вызывает метод stateChanged() каждого ChangeListener. |
ChangeListener[] |
getChangeListeners() |
Возвращает массив всех ChangeListener, добавленных в эту модель AbstractSpinnerModel с помощью addChangeListener(). |
<T extends EventListener> |
getListeners |
Возвращает массив всех слушателей указанного типа, добавленных в эту модель. |
void |
removeChangeListener |
Удаляет ChangeListener из списка слушателей модели. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и может быть удалена в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
SpinnerNumberModel
public SpinnerNumberModel(Number value, Comparable<?> minimum, Comparable<?> maximum, Number stepSize)
SpinnerModel, представляющую собой замкнутую последовательность чисел от minimum до maximum. Методы nextValue и previousValue вычисляют элементы последовательности, соответственно прибавляя или вычитая stepSize. Все параметры должны быть взаимно Comparable, а value и stepSize должны быть экземплярами Integer Long, Float или Double. Параметрам minimum и maximum можно присвоить значение null, чтобы указать, что диапазон не имеет верхней или нижней границы. Если value или stepSize равно null либо если заданы оба параметра minimum и maximum и условие minimum > maximum выполняется, выбрасывается IllegalArgumentException. Аналогично, если (minimum <= value <= maximum) равно false, выбрасывается IllegalArgumentException.
- Параметры:
-
value— текущее (неnull) значение модели -
minimum— первое число в последовательности илиnull -
maximum— последнее число в последовательности илиnull -
stepSize— разность между элементами последовательности - Исключения:
-
IllegalArgumentException— если stepSize или value равноnullлибо следующее выражение ложно:minimum <= value <= maximum
SpinnerNumberModel
public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
SpinnerNumberModel с указанными value, границами minimum/maximum и stepSize.- Параметры:
-
value— текущее значение модели -
minimum— первое число в последовательности -
maximum— последнее число в последовательности -
stepSize— разность между элементами последовательности - Исключения:
-
IllegalArgumentException— если следующее выражение ложно:minimum <= value <= maximum
SpinnerNumberModel
public SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
SpinnerNumberModel с указанными value, границами minimum/maximum и stepSize.- Параметры:
-
value— текущее значение модели -
minimum— первое число в последовательности -
maximum— последнее число в последовательности -
stepSize— разность между элементами последовательности - Исключения:
-
IllegalArgumentException— если следующее выражение ложно:minimum <= value <= maximum
SpinnerNumberModel
public SpinnerNumberModel()
SpinnerNumberModel без значений minimum и maximum, с stepSize, равным единице, и начальным значением, равным нулю.Подробное описание методов
setMinimum
public void setMinimum(Comparable<?> minimum)
minimum равно null, нижняя граница отсутствует. Проверка границ здесь не выполняется; новое значение minimum может нарушить инвариант (minimum <= value <= maximum), обеспечиваемый конструкторами. Это сделано для упрощения обновления модели; разумеется, перед вызовом методов getNextValue, getPreviousValue или setValue следует убедиться, что инвариант соблюдается. Обычно это свойство представляет собой Number того же типа, что и value, однако можно использовать любой Comparable с методом compareTo для Number того же типа, что и значение. Например, если value — это Long, minimum может быть подклассом Date, определённым следующим образом:
MyDate extends Date { // Date already implements Comparable
public int compareTo(Long o) {
long t = getTime();
return (t < o.longValue() ? -1 : (t == o.longValue() ? 0 : 1));
}
}
Этот метод генерирует ChangeEvent, если значение minimum изменилось.
- Параметры:
-
minimum—Comparable, имеющий методcompareToдляNumberтого же типа, что иvalue - См. также:
getMinimum
public Comparable<?> getMinimum()
- Возвращает:
- значение свойства
minimum - См. также:
setMaximum
public void setMaximum(Comparable<?> maximum)
maximum равно null, верхняя граница отсутствует. Проверка границ здесь не выполняется; новое значение maximum может нарушить инвариант (minimum <= value < maximum), обеспечиваемый конструкторами. Это сделано для упрощения обновления модели; разумеется, перед вызовом методов next, previous или setValue следует убедиться, что инвариант соблюдается. Обычно это свойство представляет собой Number того же типа, что и value, однако можно использовать любой Comparable с методом compareTo для Number того же типа, что и значение. Пример см. в описании setMinimum(Comparable).
Этот метод генерирует ChangeEvent, если значение maximum изменилось.
- Параметры:
-
maximum—Comparable, имеющий методcompareToдляNumberтого же типа, что иvalue - См. также:
getMaximum
public Comparable<?> getMaximum()
- Возвращает:
- значение свойства
maximum - См. также:
setStepSize
public void setStepSize(Number stepSize)
getNextValue и getPreviousValue. Если stepSize равно null, выбрасывается IllegalArgumentException. Этот метод генерирует ChangeEvent, если значение stepSize изменилось.
- Параметры:
-
stepSize— величина изменения значения, вычисляемого методамиgetNextValueиgetPreviousValue - См. также:
getStepSize
public Number getStepSize()
getNextValue и getPreviousValue.- Возвращает:
- значение свойства
stepSize - См. также:
getNextValue
public Object getNextValue()
- Определён в:
-
getNextValueв интерфейсеSpinnerModel - Возвращает:
-
value + stepSizeилиnull, если сумма превышаетmaximum. - См. также:
getPreviousValue
public Object getPreviousValue()
- Определён в:
-
getPreviousValueв интерфейсеSpinnerModel - Возвращает:
-
value - stepSizeилиnull, если сумма меньшеminimum. - См. также:
getNumber
public Number getNumber()
- Возвращает:
- свойство value
- См. также:
getValue
public Object getValue()
- Определён в:
-
getValueв интерфейсеSpinnerModel - Возвращает:
- свойство value
- См. также:
setValue
public void setValue(Object value)
value равно null или не является Number, выбрасывается IllegalArgumentException. Проверка границ здесь не выполняется; новое значение может нарушить инвариант (minimum <= value <= maximum), обеспечиваемый конструкторами. Также можно задать значение, которое естественным образом не встречается в последовательности, то есть значение, не кратное stepSize. Это сделано для упрощения обновления модели и поддержки счётчиков, которые не должны ограничивать значения, введённые пользователем напрямую. Разумеется, перед вызовом методов next, previous или setValue следует убедиться, что инвариант (minimum <= value <= maximum) соблюдается. Этот метод генерирует ChangeEvent, если значение изменилось.
- Определён в:
-
setValueв интерфейсеSpinnerModel - Параметры:
-
value— текущее (неnull) значениеNumberэтой последовательности - Исключения:
-
IllegalArgumentException— еслиvalueравноnullили не являетсяNumber - См. также:
© 1993, 2025, 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.