Класс 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 Поле ввода одной строки, которое позволяет пользователю выбирать число или значение объекта из упорядоченной последовательности. Спиннеры обычно предоставляют пару маленьких стрелочных кнопок для перемещения по элементам последовательности. Клавиши со стрелками вверх/вниз на клавиатуре также циклически просматривают элементы. Пользователь также может ввести (допустимое) значение непосредственно в спиннер. Хотя комбинированные поля (combo boxes) обеспечивают аналогичную функциональность, спиннеры иногда предпочтительнее, так как им не требуется выпадающий список, который может заслонять важную информацию.
Значение последовательности 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(); Для получения информации и примеров использования спиннера см. Как использовать спиннеры, раздел в учебнике Java.
Предупреждение: Swing не потокобезопасен. Для получения дополнительной информации см. Политику потоков Swing.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. С версии 1.4 добавлена поддержка долгосрочного хранения всех JavaBeans™ в пакете java.beans. Пожалуйста, см. XMLEncoder.
- С:
- 1.4
- См. также:
-
SpinnerModel,AbstractSpinnerModel,SpinnerListModel,SpinnerNumberModel,SpinnerDateModel,JFormattedTextField, Сериализованная форма
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
protected class | JSpinner.AccessibleJSpinner |
|
static class | JSpinner.DateEditor | Редактор для |
static class | JSpinner.DefaultEditor | Простой базовый класс для более специализированных редакторов, отображающий только для чтения текущее значение модели с |
static class | JSpinner.ListEditor | Редактор для |
static class | JSpinner.NumberEditor | Редактор для |
Вложенные классы/интерфейсы, объявленные в классе javax.swing.JComponent
JComponent.AccessibleJComponent Вложенные классы/интерфейсы, объявленные в классе java.awt.Container
Container.AccessibleAWTContainer Вложенные классы/интерфейсы, объявленные в классе java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy Сводка полей
Поля, объявленные в классе javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW Поля, объявленные в классе java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT Поля, объявленные в интерфейсе java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
JSpinner() | Создаёт спиннер со |
JSpinner(SpinnerModel model) | Создаёт спиннер для заданной модели. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | addChangeListener(ChangeListener listener) | Добавляет слушателя в список, который уведомляется каждый раз при изменении модели. |
void | commitEdit() | Фиксирует текущее редактируемое значение в |
protected JComponent | createEditor(SpinnerModel model) | Этот метод вызывается конструкторами для создания |
protected void | fireStateChanged() | Отправляет |
AccessibleContext | getAccessibleContext() | Получает |
ChangeListener[] | getChangeListeners() | Возвращает массив всех |
JComponent | getEditor() | Возвращает компонент, отображающий и, потенциально, изменяющий значение модели. |
SpinnerModel | getModel() | Возвращает |
Object | getNextValue() | Возвращает объект в последовательности, который следует за объектом, возвращенным |
Object | getPreviousValue() | Возвращает объект в последовательности, который предшествует объекту, возвращенному |
SpinnerUI | getUI() | Возвращает объект внешнего вида (L&F), который отображает этот компонент. |
String | getUIClassID() | Возвращает суффикс, используемый для построения имени класса внешнего вида (L&F), используемого для отображения этого компонента. |
Object | getValue() | Возвращает текущее значение модели, обычно это значение отображается |
void | removeChangeListener(ChangeListener listener) | Удаляет |
void | setEditor(JComponent editor) | Изменяет |
void | setModel(SpinnerModel model) | Изменяет модель, представляющую значение этого спиннера. |
void | setUI(SpinnerUI ui) | Устанавливает объект внешнего вида (L&F), который отображает этот компонент. |
void | setValue(Object value) | Изменяет текущее значение модели, обычно это значение отображается |
void | updateUI() | Сбрасывает свойство UI со значением из текущего внешнего вида. |
Методы, объявленные в классе javax.swing.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, 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 Методы, объявленные в классе java.awt.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 Методы, объявленные в классе java.awt.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, hide, 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 Методы, объявленные в классе java.lang.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(javax.swing.JComponent)
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
Возвращает суффикс, используемый для построения имени класса внешнего вида (L&F), используемого для отображения этого компонента.
- Переопределяет:
-
getUIClassIDв классеJComponent - Возвращает:
- строку "SpinnerUI"
- См. также:
-
JComponent.getUIClassID(),UIDefaults.getUI(javax.swing.JComponent)
updateUI
public void updateUI()
Сбрасывает свойство UI значением из текущего внешнего вида.
- Переопределяет:
-
updateUIв классеJComponent - См. также:
UIManager.getUI(javax.swing.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(javax.swing.JComponent)
setModel
@BeanProperty(visualUpdate=true,
description="Model that represents the value of this spinner.")
public void setModel(SpinnerModel model) Изменяет модель, представляющую значение этого спиннера. Если свойство editor не было явно установлено, свойство editor (неявно) устанавливается после того, как событие "model" PropertyChangeEvent было вызвано. Свойство editor устанавливается в значение, возвращаемое createEditor, как в:
setEditor(createEditor(model));
- Параметры:
-
model- новаяSpinnerModel - Исключения:
-
IllegalArgumentException- если model являетсяnull - См. также:
-
getModel(),getEditor(),setEditor(javax.swing.JComponent)
getModel
public SpinnerModel getModel()
Возвращает SpinnerModel, определяющий последовательность значений этого спиннера.
- Возвращает:
- значение свойства model
- См. также:
setModel(javax.swing.SpinnerModel)
getValue
public Object getValue()
Возвращает текущее значение модели, обычно это значение отображается editor. Если пользователь изменил значение, отображаемое editor, возможно, что значение model отличается от значения editor, обратитесь к описанию класса для примеров того, как с этим бороться.
Этот метод просто делегирует model. Он эквивалентен:
getModel().getValue()
- Возвращает:
- текущее значение модели
- См. также:
-
setValue(java.lang.Object),SpinnerModel.getValue()
setValue
public void setValue(Object value)
Изменяет текущее значение модели, обычно это значение отображается editor. Если реализация SpinnerModel не поддерживает указанное значение, то выбрасывается IllegalArgumentException.
Этот метод просто делегирует model. Он эквивалентен:
getModel().setValue(value)
- Параметры:
-
value- новое значение для спиннера - Исключения:
-
IllegalArgumentException- еслиvalueне разрешено - См. также:
-
getValue(),SpinnerModel.setValue(java.lang.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(javax.swing.event.ChangeListener),getModel()
removeChangeListener
public void removeChangeListener(ChangeListener listener)
Удаляет ChangeListener из этого спиннера.
- Параметры:
-
listener-ChangeListener, который нужно удалить - См. также:
-
fireStateChanged(),addChangeListener(javax.swing.event.ChangeListener)
getChangeListeners
@BeanProperty(bound=false) public ChangeListener[] getChangeListeners()
Возвращает массив всех ChangeListeners, добавленных в этот JSpinner с помощью addChangeListener().
- Возвращает:
- все добавленные
ChangeListeners или пустой массив, если прослушиватели не были добавлены - С версии:
- 1.4
fireStateChanged
protected void fireStateChanged()
Отправляет ChangeEvent, источником которого является этот JSpinner, каждому ChangeListener. Когда ChangeListener был добавлен к спиннеру, этот метод вызывается каждый раз, когда от модели принимается ChangeEvent.
- См. также:
-
addChangeListener(javax.swing.event.ChangeListener),removeChangeListener(javax.swing.event.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(javax.swing.SpinnerModel),getModel()
getEditor
public JComponent getEditor()
Возвращает компонент, который отображает и потенциально изменяет значение модели.
- Возвращает:
- компонент, который отображает и потенциально изменяет значение модели
- См. также:
-
setEditor(javax.swing.JComponent),createEditor(javax.swing.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
© 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/JSpinner.html