Spec-Zone.ru › OpenJDK 21

Класс SpinnerNumberModel

java.lang.Object
javax.swing.AbstractSpinnerModel
javax.swing.SpinnerNumberModel
Все реализованные интерфейсы:
Serializable, SpinnerModel
public class SpinnerNumberModel extends AbstractSpinnerModel implements Serializable
Модель для последовательностей чисел. Верхние и нижние границы последовательности определяются свойствами, называемыми minimum и maximum. Размер приращения или уменьшения, вычисляемый методами nextValue и previousValue, определяется свойством stepSize. Свойства minimum и maximum могут быть установлены в null для указания отсутствия нижнего или верхнего предела в последовательности. Все свойства в этом классе определены с использованием двух обобщенных типов: Number и Comparable, что позволяет использовать все числовые типы Java. Внутренне поддерживаются только значения, тип которых является одним из примитивных типов Number: Double, Float, Long, Integer, Short, или Byte.

Чтобы создать модель для целого диапазона от нуля до ста, с начальным значением пятьдесят, можно написать:

 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
См. также:
  • JSpinner
  • SpinnerModel
  • AbstractSpinnerModel
  • SpinnerListModel
  • SpinnerDateModel

Краткое описание полей

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

listenerList

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

Конструктор Описание
SpinnerNumberModel()
Создает SpinnerNumberModel без значения minimum или maximum, stepSize равным одному и начальным значением ноль.
SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
Создаёт SpinnerNumberModel со заданными value, границами minimum/maximum и stepSize.
SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
Создаёт SpinnerNumberModel со заданными value, границами minimum/maximum и stepSize.
SpinnerNumberModel(Number value, Comparable<?> minimum, Comparable<?> maximum, Number stepSize)
Создаёт SpinnerModel, представляющую замкнутую последовательность чисел от minimum до maximum.

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

Модификатор и тип Метод Описание
Comparable<?> getMaximum()
Возвращает последнее число в последовательности.
Comparable<?> getMinimum()
Возвращает первое число в этой последовательности.
Object getNextValue()
Возвращает следующее число в последовательности.
Number getNumber()
Возвращает значение текущего элемента последовательности.
Object getPreviousValue()
Возвращает предыдущее число в последовательности.
Number getStepSize()
Возвращает размер изменения значения, вычисляемого методами getNextValue и getPreviousValue.
Object getValue()
Возвращает значение текущего элемента последовательности.
void setMaximum(Comparable<?> maximum)
Изменяет верхнюю границу чисел в этой последовательности.
void setMinimum(Comparable<?> minimum)
Изменяет нижнюю границу чисел в этой последовательности.
void setStepSize(Number stepSize)
Изменяет размер изменения значения, вычисляемого методами getNextValue и getPreviousValue.
void setValue(Object value)
Устанавливает текущее значение для этой последовательности.

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

addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

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 с тем же типом, что и значение. Например, если значение было 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()
  • setMaximum(java.lang.Comparable<?>)
  • SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

getMinimum

public Comparable<?> getMinimum()
Возвращает первое число в этой последовательности.
Возвращает:
значение свойства minimum
См. также:
  • setMinimum(java.lang.Comparable<?>)

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()
  • setMinimum(java.lang.Comparable<?>)
  • SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

getMaximum

public Comparable<?> getMaximum()
Возвращает последнее число в последовательности.
Возвращает:
значение свойства maximum
См. также:
  • setMaximum(java.lang.Comparable<?>)

setStepSize

public void setStepSize(Number stepSize)
Изменяет размер изменения значения, вычисляемого методами getNextValue и getPreviousValue. Бросает исключение IllegalArgumentException, если stepSize равно null.

Этот метод срабатывает с событием ChangeEvent, если stepSize изменилось.

Параметры:
stepSize - размер изменения значения, вычисляемого методами getNextValue и getPreviousValue
См. также:
  • getNextValue()
  • getPreviousValue()
  • getStepSize()
  • SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)

getStepSize

public Number getStepSize()
Возвращает размер изменения значения, вычисляемого методами getNextValue и getPreviousValue.
Возвращает:
значение свойства stepSize
См. также:
  • setStepSize(java.lang.Number)

getNextValue

public Object getNextValue()
Возвращает следующее число в последовательности.
Определено в:
getNextValue в интерфейсе SpinnerModel
Возвращает:
value + stepSize или null если сумма превышает maximum.
См. также:
  • SpinnerModel.getNextValue()
  • getPreviousValue()
  • setStepSize(java.lang.Number)

getPreviousValue

public Object getPreviousValue()
Возвращает предыдущее число в последовательности.
Определено в:
getPreviousValue в интерфейсе SpinnerModel
Возвращает:
value - stepSize, или null если сумма меньше minimum.
См. также:
  • SpinnerModel.getPreviousValue()
  • getNextValue()
  • setStepSize(java.lang.Number)

getNumber

public Number getNumber()
Возвращает значение текущего элемента последовательности.
Возвращает:
свойство value
См. также:
  • setValue(java.lang.Object)

getValue

public Object getValue()
Возвращает значение текущего элемента последовательности.
Определено в:
getValue в интерфейсе SpinnerModel
Возвращает:
свойство value
См. также:
  • setValue(java.lang.Object)
  • getNumber()

setValue

public void setValue(Object value)
Устанавливает текущее значение для этой последовательности. Если value имеет значение null, или это не Number, выбрасывается IllegalArgumentException. Проверка границ здесь не выполняется; новое значение может нарушить инвариант (minimum <= value <= maximum), налагаемый конструкторами. Также возможно установить значение, которое не встречается естественным образом в последовательности, т. е. значение, не кратное stepSize. Это упрощает обновление модели и позволяет использовать спиннеры, которые не хотят ограничивать значения, введенные пользователем напрямую. Естественно, необходимо убедиться, что инвариант (minimum <= value <= maximum) верен перед вызовом методов next, previous, или setValue.

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

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

© 1993, 2023, 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/21/docs/api/java.desktop/javax/swing/SpinnerNumberModel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API