Класс 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
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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
Подробное описание конструкторов
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/SpinnerNumberModel.html