Класс JSpinner
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JSpinner
- Все реализованные интерфейсы:
- ImageObserver, MenuContainer, Serializable, Accessible
public class JSpinner extends JComponent implements Accessible
Поле ввода одной строки, которое позволяет пользователю выбрать число или значение объекта из упорядоченной последовательности. Спиннеры обычно предоставляют пару маленьких кнопок со стрелками для перехода по элементам последовательности. Клавиши со стрелками вверх/вниз на клавиатуре также циклически просматривают элементы. Пользователю также может быть разрешено вводить (допустимое) значение непосредственно в спиннер. Хотя комбинированные поля (combo boxes) обеспечивают аналогичную функциональность, спиннеры иногда предпочтительнее, так как они не требуют раскрывающегося списка, который может заслонять важную информацию.
Последовательность значений спиннера определяется его SpinnerModel. model можно указать в качестве аргумента конструктора и изменить свойством model. Для некоторых распространённых типов предоставляются SpinnerListModel, SpinnerNumberModel и SpinnerDateModel классы.
Спиннер имеет единственный дочерний компонент, который отвечает за отображение и, возможно, изменение текущего элемента или значения модели, который называется editor. Редактор создаётся конструктором JSpinner и может быть изменён свойством editor. Редактор спиннера синхронизируется с моделью, прослушивая 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 Tutorial.
Предупреждение: 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, 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 Методы, унаследованные от класса 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, 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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, 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)
Создаёт спиннер для заданной модели. Спиннер имеет кнопки "Предыдущее" / "Следующее" и редактор, подходящий для модели.
- Исключения:
-
NullPointerException- если модельnull
JSpinner
public JSpinner()
Создаёт спиннер со значением по умолчанию 0 и без минимальных или максимальных ограничений.
Методы
getUI
public SpinnerUI getUI()
Возвращает объект визуального представления (L&F), который отрисовывает этот компонент.
- Возвращает:
- объект визуального представления (L&F), который отрисовывает этот компонент
setUI
public void setUI(SpinnerUI ui)
Устанавливает объект визуального представления (L&F), который отрисовывает этот компонент.
- Параметры:
-
ui- объект визуального представления (L&F) - См. также:
UIDefaults.getUI(javax.swing.JComponent)
getUIClassID
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)
Этот метод вызывается конструкторами для создания редактора, который отображает текущее значение последовательности. Редактор также может позволять пользователю вводить элемент последовательности напрямую. Редактор должен реагировать на изменения в модели и синхронизировать отображаемое значение с значением модели.
Подклассы могут переопределять этот метод, чтобы добавить поддержку новых типов редакторов. В качестве альтернативы можно просто заменить созданный здесь редактор методом setEditor. По умолчанию отображение от типа модели до редактора:
-
SpinnerNumberModel => JSpinner.NumberEditor -
SpinnerDateModel => JSpinner.DateEditor -
SpinnerListModel => JSpinner.ListEditor - все остальные =>
JSpinner.DefaultEditor
- Параметры:
-
model- значение getModel - Возвращает:
- компонент, отображающий текущее значение последовательности
- См. также:
-
getModel(),setEditor(javax.swing.JComponent)
setModel
public void setModel(SpinnerModel model)
Изменяет модель, представляющую значение этого спиннера. Если свойство editor не было явно установлено, оно (неявно) устанавливается после того, как было вызвано событие изменения модели. Свойство editor устанавливается в значение, возвращаемое методом getEditor(), как в:
setEditor(createEditor(model));
- Параметры:
-
model- новая модель - Исключения:
-
IllegalArgumentException- если модельnull - См. также:
-
getModel(),getEditor(),setEditor(javax.swing.JComponent)
getModel
public SpinnerModel getModel()
Возвращает модель, определяющую последовательность значений этого спиннера.
- Возвращает:
- значение свойства модели
- См. также:
setModel(javax.swing.SpinnerModel)
getValue
public Object getValue()
Возвращает текущее значение модели, обычно это значение отображается редактором. Если пользователь изменил значение, отображаемое редактором, возможно, что значение модели отличается от значения редактора. См. документацию класса для примеров, как с этим справиться.
Этот метод просто делегирует вызов модели. Он эквивалентен:
getModel().getValue()
- См. также:
-
setValue(java.lang.Object),SpinnerModel.getValue()
setValue
public void setValue(Object value)
Изменяет текущее значение модели, обычно это значение отображается редактором. Если реализация редактора не поддерживает указанное значение, выбрасывается исключение.
Этот метод просто делегирует вызов модели. Он эквивалентен:
getModel().setValue(value)
- Исключения:
-
IllegalArgumentException- еслиvalueнедопустимо - См. также:
-
getValue(),SpinnerModel.setValue(java.lang.Object)
getNextValue
public Object getNextValue()
Возвращает объект в последовательности, который следует за объектом, возвращённым методом getValue(). Если конец последовательности достигнут, возвращается значение по умолчанию. Вызов этого метода не влияет на редактор.
Этот метод просто делегирует вызов модели. Он эквивалентен:
getModel().getNextValue()
- Возвращает:
- следующее допустимое значение или значение по умолчанию, если оно не существует
- См. также:
-
getValue(),getPreviousValue(),SpinnerModel.getNextValue()
addChangeListener
public void addChangeListener(ChangeListener listener)
Добавляет слушателя в список, который уведомляется каждый раз, когда происходит изменение модели. Источником события изменения, переданного слушателю, будет этот спиннер. Обратите внимание, что замена модели не повлияет на слушателей, добавленных непосредственно в JSpinner. Приложения могут добавлять слушателей непосредственно к модели. В этом случае источником события будет модель.
- Параметры:
-
listener- слушатель для добавления - См. также:
-
removeChangeListener(javax.swing.event.ChangeListener),getModel()
removeChangeListener
public void removeChangeListener(ChangeListener listener)
Удаляет слушателя из спиннера.
- Параметры:
-
listener- слушатель для удаления - См. также:
-
fireStateChanged(),addChangeListener(javax.swing.event.ChangeListener)
getChangeListeners
public ChangeListener[] getChangeListeners()
Возвращает массив всех слушателей, добавленных в этот JSpinner с помощью addChangeListener().
- Возвращает:
- массив всех добавленных слушателей или пустой массив, если слушатели не добавлены
- С тех пор как:
- 1.4
fireStateChanged
protected void fireStateChanged()
Отправляет событие изменения модели всем слушателям, источником которого является этот спиннер. Когда слушатель добавлен к спиннеру, этот метод вызывается каждый раз, когда поступает событие изменения от модели.
- См. также:
-
addChangeListener(javax.swing.event.ChangeListener),removeChangeListener(javax.swing.event.ChangeListener),EventListenerList
getPreviousValue
public Object getPreviousValue()
Возвращает объект в последовательности, который предшествует объекту, возвращённому методом getValue(). Если конец последовательности достигнут, возвращается значение по умолчанию. Вызов этого метода не влияет на редактор.
Этот метод просто делегирует вызов модели. Он эквивалентен:
getModel().getPreviousValue()
- Возвращает:
- предыдущее допустимое значение или значение по умолчанию, если оно не существует
- См. также:
-
getValue(),getNextValue(),SpinnerModel.getPreviousValue()
setEditor
public void setEditor(JComponent editor)
Изменяет редактор, отображающий текущее значение модели. Ответственность этого метода - отсоединить старый редактор от модели и подключить новый редактор. Это может означать удаление старого редактора из модели или спиннера и добавление нового для нового редактора.
- Параметры:
-
editor- новый редактор - Исключения:
-
IllegalArgumentException- если редактор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 Сохраняет текущее редактируемое значение в модели.
Если редактор является экземпляром SpinnerEditor, вызов перенаправляется редактору, в противном случае ничего не происходит.
- Исключения:
-
ParseException- если текущее редактируемое значение не может быть сохранено.
getAccessibleContext
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.