Spec-Zone.ru › OpenJDK 25

Класс JSpinner

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JSpinner
Все реализованные интерфейсы:
ImageObserver, MenuContainer, Serializable, Accessible
@JavaBean(defaultProperty="UI", description="A single line input field that lets the user select a number or an object value from an ordered set.") public class JSpinner extends JComponent implements Accessible
Однострочное поле ввода, позволяющее пользователю выбрать число или значение объекта из упорядоченной последовательности. Обычно спиннеры предоставляют пару небольших кнопок со стрелками для перехода между элементами последовательности. Клавиши со стрелками вверх и вниз также позволяют переключаться между элементами. Пользователю также может быть разрешено вводить допустимое значение непосредственно в спиннер. Хотя аналогичные возможности предоставляют поля со списком, иногда предпочтительнее использовать спиннеры, поскольку для них не требуется раскрывающийся список, который может закрывать важные данные.

Значение последовательности JSpinner определяется его SpinnerModel. model можно указать в качестве аргумента конструктора и изменить с помощью свойства model. Для некоторых распространённых типов предусмотрены классы SpinnerModel: SpinnerListModel, SpinnerNumberModel и SpinnerDateModel.

У JSpinner есть единственный дочерний компонент, отвечающий за отображение и, возможно, изменение текущего элемента или значения модели; он называется editor. Редактор создаётся конструктором JSpinner и может быть изменён с помощью свойства editor. Редактор JSpinner синхронизируется с моделью, отслеживая события ChangeEvent. Если пользователь изменил значение, отображаемое в editor, значение model может отличаться от значения editor. Чтобы убедиться, что model имеет то же значение, что и редактор, используйте метод commitEdit, например:

  try {
      spinner.commitEdit();
  }
  catch (ParseException pe) {
      // Edited value is invalid, spinner.getValue() will return
      // the last valid value, you could revert the spinner to show that:
      JComponent editor = spinner.getEditor();
      if (editor instanceof DefaultEditor) {
          ((DefaultEditor)editor).getTextField().setValue(spinner.getValue());
      }
      // reset the value to some known value:
      spinner.setValue(fallbackValue);
      // or treat the last valid value as the current, in which
      // case you don't need to do anything.
  }
  return spinner.getValue();

Сведения и примеры использования спиннера см. в разделе Использование спиннеров учебника The Java Tutorial.

Предупреждение: Swing не является потокобезопасной библиотекой. Дополнительные сведения см. в разделе Политика многопоточности Swing.

Предупреждение: Сериализованные объекты этого класса несовместимы с будущими выпусками Swing. Текущая поддержка сериализации предназначена для кратковременного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4 в пакет java.beans добавлена поддержка долговременного хранения всех JavaBeans. См. XMLEncoder.

С версии:
1.4
См. также:
  • SpinnerModel
  • AbstractSpinnerModel
  • SpinnerListModel
  • SpinnerNumberModel
  • SpinnerDateModel
  • JFormattedTextField

Краткое описание вложенных классов

Модификатор и тип Класс Описание
protected class  JSpinner.AccessibleJSpinner
AccessibleJSpinner реализует поддержку специальных возможностей для класса JSpinner.
static class  JSpinner.DateEditor
Редактор для JSpinner, модель которого является SpinnerDateModel.
static class  JSpinner.DefaultEditor
Простой базовый класс для более специализированных редакторов, отображающий доступное только для чтения представление текущего значения модели с помощью JFormattedTextField.
static class  JSpinner.ListEditor
Редактор для JSpinner, модель которого является SpinnerListModel.
static class  JSpinner.NumberEditor
Редактор для JSpinner, модель которого является SpinnerNumberModel.

Вложенные классы/интерфейсы, объявленные в классе JComponent

JComponent.AccessibleJComponent

Вложенные классы/интерфейсы, объявленные в классе Container

Container.AccessibleAWTContainer

Вложенные классы/интерфейсы, объявленные в классе Component

Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy

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

Поля, объявленные в классе JComponent

listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW

Поля, объявленные в классе Component

accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

Поля, объявленные в интерфейсе ImageObserver

ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH

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

Конструктор Описание
JSpinner()
Создаёт спиннер с Integer SpinnerNumberModel, начальным значением 0 и без ограничений на минимальное и максимальное значения.
JSpinner(SpinnerModel model)
Создаёт спиннер для указанной модели.

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

Модификатор и тип Метод Описание
void addChangeListener(ChangeListener listener)
Добавляет прослушиватель в список, который получает уведомление при каждом изменении модели.
void commitEdit()
Сохраняет текущее редактируемое значение в SpinnerModel.
protected JComponent createEditor(SpinnerModel model)
Этот метод вызывается конструкторами для создания JComponent, отображающего текущее значение последовательности.
protected void fireStateChanged()
Отправляет ChangeEvent, источником которого является этот JSpinner, каждому ChangeListener.
AccessibleContext getAccessibleContext()
Возвращает AccessibleContext для JSpinner
ChangeListener[] getChangeListeners()
Возвращает массив всех ChangeListener, добавленных в этот JSpinner с помощью addChangeListener().
JComponent getEditor()
Возвращает компонент, отображающий и, возможно, изменяющий значение модели.
SpinnerModel getModel()
Возвращает SpinnerModel, задающую последовательность значений этого спиннера.
Object getNextValue()
Возвращает объект последовательности, следующий за объектом, возвращённым методом getValue().
Object getPreviousValue()
Возвращает объект последовательности, предшествующий объекту, возвращённому методом getValue().
SpinnerUI getUI()
Возвращает объект оформления (L&F), который отображает этот компонент.
String getUIClassID()
Возвращает суффикс, используемый для формирования имени класса оформления (L&F), применяемого для отображения этого компонента.
Object getValue()
Возвращает текущее значение модели; обычно это значение отображается в editor.
void removeChangeListener(ChangeListener listener)
Удаляет ChangeListener из этого спиннера.
void setEditor(JComponent editor)
Изменяет JComponent, отображающий текущее значение SpinnerModel.
void setModel(SpinnerModel model)
Изменяет модель, представляющую значение этого спиннера.
void setUI(SpinnerUI ui)
Задаёт объект оформления (L&F), который отображает этот компонент.
void setValue(Object value)
Изменяет текущее значение модели; обычно это значение отображается в editor.
void updateUI()
Сбрасывает свойство UI, устанавливая его в значение из текущего оформления.

Методы, объявленные в классе JComponent

addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update

Методы, объявленные в классе Container

add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree

Методы, объявленные в классе Component

action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle

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

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

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

JSpinner

public JSpinner(SpinnerModel model)
Создаёт спиннер для указанной модели. Спиннер содержит кнопки перехода к предыдущему и следующему значению, а также редактор, соответствующий модели.
Параметры:
model — модель для нового спиннера
Исключения:
NullPointerException — если модель равна null

JSpinner

public JSpinner()
Создаёт спиннер с Integer SpinnerNumberModel, начальным значением 0 и без ограничений на минимальное и максимальное значения.

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

getUI

public SpinnerUI getUI()
Возвращает объект оформления (L&F), который отображает этот компонент.
Переопределяет:
getUI в классе JComponent
Возвращает:
объект SpinnerUI, который отображает этот компонент

setUI

public void setUI(SpinnerUI ui)
Задаёт объект оформления (L&F), который отображает этот компонент.
Параметры:
ui — объект оформления L&F для SpinnerUI
См. также:
  • UIDefaults.getUI(JComponent)

getUIClassID

@BeanProperty(bound=false) public String getUIClassID()
Возвращает суффикс, используемый для формирования имени класса оформления (L&F), применяемого для отображения этого компонента.
Переопределяет:
getUIClassID в классе JComponent
Возвращает:
строку "SpinnerUI"
См. также:
  • JComponent.getUIClassID()
  • UIDefaults.getUI(JComponent)

updateUI

public void updateUI()
Сбрасывает свойство UI, устанавливая его в значение из текущего оформления.
Переопределяет:
updateUI в классе JComponent
См. также:
  • UIManager.getUI(JComponent)

createEditor

protected JComponent createEditor(SpinnerModel model)
Этот метод вызывается конструкторами для создания JComponent, отображающего текущее значение последовательности. Редактор также может позволять пользователю непосредственно вводить элемент последовательности. Редактор должен отслеживать ChangeEvents в model и синхронизировать отображаемое им значение со значением модели.

Подклассы могут переопределить этот метод, чтобы добавить поддержку новых классов SpinnerModel. Кроме того, можно просто заменить редактор, созданный здесь, с помощью метода setEditor. По умолчанию тип модели сопоставляется с редактором следующим образом:

  • SpinnerNumberModel => JSpinner.NumberEditor
  • SpinnerDateModel => JSpinner.DateEditor
  • SpinnerListModel => JSpinner.ListEditor
  • все остальные => JSpinner.DefaultEditor
Параметры:
model — значение getModel
Возвращает:
компонент, отображающий текущее значение последовательности
См. также:
  • getModel()
  • setEditor(JComponent)

setModel

@BeanProperty(visualUpdate=true, description="Model that represents the value of this spinner.") public void setModel(SpinnerModel model)
Изменяет модель, представляющую значение этого спиннера. Если свойство editor не задано явно, после генерации "model" PropertyChangeEvent свойству editor (неявно) присваивается значение, возвращаемое методом createEditor, например:
setEditor(createEditor(model));
Параметры:
model — новая SpinnerModel
Исключения:
IllegalArgumentException — если model равно null
См. также:
  • getModel()
  • getEditor()
  • setEditor(JComponent)

getModel

public SpinnerModel getModel()
Возвращает SpinnerModel, задающую последовательность значений этого спиннера.
Возвращает:
значение свойства model
См. также:
  • setModel(SpinnerModel)

getValue

public Object getValue()
Возвращает текущее значение модели; обычно это значение отображается в editor. Если пользователь изменил значение, отображаемое в editor, значение model может отличаться от значения editor; примеры обработки этой ситуации см. в документации Javadoc на уровне класса.

Этот метод просто делегирует вызов model. Он эквивалентен следующему:

getModel().getValue()
Возвращает:
текущее значение модели
См. также:
  • setValue(Object)
  • SpinnerModel.getValue()

setValue

public void setValue(Object value)
Изменяет текущее значение модели; обычно это значение отображается в editor. Если реализация SpinnerModel не поддерживает указанное значение, выбрасывается IllegalArgumentException.

Этот метод просто делегирует вызов model. Он эквивалентен следующему:

getModel().setValue(value)
Параметры:
value — новое значение спиннера
Исключения:
IllegalArgumentException — если value недопустимо
См. также:
  • getValue()
  • SpinnerModel.setValue(Object)

getNextValue

@BeanProperty(bound=false) public Object getNextValue()
Возвращает объект последовательности, следующий за объектом, возвращённым методом getValue(). Если достигнут конец последовательности, возвращает null. Вызов этого метода не изменяет value.

Этот метод просто делегирует вызов model. Он эквивалентен следующему:

getModel().getNextValue()
Возвращает:
следующее допустимое значение или null, если такого значения нет
См. также:
  • getValue()
  • getPreviousValue()
  • SpinnerModel.getNextValue()

addChangeListener

public void addChangeListener(ChangeListener listener)
Добавляет прослушиватель в список, который получает уведомление при каждом изменении модели. Источником ChangeEvents, отправляемых ChangeListeners, будет этот JSpinner. Обратите также внимание, что замена модели не влияет на прослушиватели, добавленные непосредственно в JSpinner. Приложения могут добавлять прослушиватели непосредственно в модель. В этом случае источником события будет SpinnerModel.
Параметры:
listener — добавляемый ChangeListener
См. также:
  • removeChangeListener(ChangeListener)
  • getModel()

removeChangeListener

public void removeChangeListener(ChangeListener listener)
Удаляет ChangeListener из этого спиннера.
Параметры:
listener — удаляемый ChangeListener
См. также:
  • fireStateChanged()
  • addChangeListener(ChangeListener)

getChangeListeners

@BeanProperty(bound=false) public ChangeListener[] getChangeListeners()
Возвращает массив всех ChangeListener, добавленных в этот JSpinner с помощью addChangeListener().
Возвращает:
все добавленные ChangeListener или пустой массив, если прослушиватели не добавлялись
С версии:
1.4

fireStateChanged

protected void fireStateChanged()
Отправляет ChangeEvent, источником которого является этот JSpinner, каждому ChangeListener. После добавления ChangeListener в спиннер этот метод вызывается каждый раз при получении ChangeEvent от модели.
См. также:
  • addChangeListener(ChangeListener)
  • removeChangeListener(ChangeListener)
  • EventListenerList

getPreviousValue

@BeanProperty(bound=false) public Object getPreviousValue()
Возвращает объект последовательности, предшествующий объекту, возвращённому методом getValue(). Если достигнут конец последовательности, возвращает null. Вызов этого метода не изменяет value.

Этот метод просто делегирует вызов model. Он эквивалентен следующему:

getModel().getPreviousValue()
Возвращает:
предыдущее допустимое значение или null, если такого значения нет
См. также:
  • getValue()
  • getNextValue()
  • SpinnerModel.getPreviousValue()

setEditor

@BeanProperty(visualUpdate=true, description="JComponent that displays the current value of the model") public void setEditor(JComponent editor)
Изменяет JComponent, отображающий текущее значение SpinnerModel. Этот метод отвечает за отключение старого редактора от модели и подключение нового. Это может означать удаление ChangeListener старого редактора из модели или самого спиннера и добавление такого обработчика для нового редактора.
Параметры:
editor — новый редактор
Исключения:
IllegalArgumentException — если editor равно null
См. также:
  • getEditor()
  • createEditor(SpinnerModel)
  • getModel()

getEditor

public JComponent getEditor()
Возвращает компонент, отображающий и, возможно, изменяющий значение модели.
Возвращает:
компонент, отображающий и, возможно, изменяющий значение модели
См. также:
  • setEditor(JComponent)
  • createEditor(SpinnerModel)

commitEdit

public void commitEdit() throws ParseException
Сохраняет текущее редактируемое значение в SpinnerModel.

Если редактор является экземпляром DefaultEditor, вызов перенаправляется редактору; в противном случае метод ничего не делает.

Исключения:
ParseException — если текущее редактируемое значение не удалось сохранить.

getAccessibleContext

@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
Возвращает AccessibleContext для JSpinner
Определено в:
getAccessibleContext в интерфейсе Accessible
Переопределяет:
getAccessibleContext в классе Component
Возвращает:
AccessibleContext для JSpinner
С версии:
1.5

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, способы обхода проблем и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/JSpinner.html

Spec-Zone.ru

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