- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JSpinner
-
- All Implemented Interfaces:
-
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。A
JSpinner具有单个子组件,负责显示和潜在地更改模型的当前元素或值 ,这称为editor。 编辑器由JSpinner的构造函数创建,可以使用editor属性更改。JSpinner的编辑器通过监听ChangeEvents与模型保持同步。 如果用户已经改变由所述显示的值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教程”中的“ How to Use Spinners ”一节。
警告: Swing不是线程安全的。 欲了解更多信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4版本开始,所有JavaBeans的长期存储支持已被添加到
java.beans包中。 请参阅XMLEncoder。- 从以下版本开始:
- 1.4
- 另请参见:
-
SpinnerModel,AbstractSpinnerModel,SpinnerListModel,SpinnerNumberModel,SpinnerDateModel,JFormattedTextField, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 protected classJSpinner.AccessibleJSpinnerAccessibleJSpinner实现JSpinner类的辅助功能支持。static classJSpinner.DateEditor一个JSpinner的编辑器,其型号是SpinnerDateModel。static classJSpinner.DefaultEditor更专业的编辑器的简单基类,可以使用JFormattedTextField显示模型当前值的JFormattedTextField。static classJSpinner.ListEditor一个JSpinner的编辑器,其型号是SpinnerListModel。static classJSpinner.NumberEditor一个JSpinner的编辑器,其型号是SpinnerNumberModel。-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
-
Field Summary
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
构造方法摘要
构造方法 Constructor 描述 JSpinner()构造一个带有初始值为0的Integer SpinnerNumberModel的旋转器,并且没有最小或最大限制。JSpinner(SpinnerModel model)构造给定模型的旋转器。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidaddChangeListener(ChangeListener listener)将侦听器添加到每次发生模型更改时通知的列表。voidcommitEdit()将当前编辑的值提交到SpinnerModel。protected JComponentcreateEditor(SpinnerModel model)该方法由构造函数调用来创建显示序列的当前值的JComponent。protected voidfireStateChanged()发送一个ChangeEvent,其来源是这个JSpinner,每个ChangeListener。AccessibleContextgetAccessibleContext()获得AccessibleContext的JSpinnerChangeListener[]getChangeListeners()返回使用addChangeListener()添加到此JSpinner的所有ChangeListener的数组。JComponentgetEditor()返回显示的组件,并可能更改模型的值。SpinnerModelgetModel()返回定义该旋转序列值的SpinnerModel。ObjectgetNextValue()返回getValue()返回的对象后面的序列中的对象。ObjectgetPreviousValue()返回getValue()返回的对象之前的序列中的对象。SpinnerUIgetUI()返回渲染此组件的外观和感觉(L&F)对象。StringgetUIClassID()返回用于构造用于渲染此组件的外观(L&F)类的名称的后缀。ObjectgetValue()返回模型的当前值,通常这个值由editor显示。voidremoveChangeListener(ChangeListener listener)从此微调移除ChangeListener。voidsetEditor(JComponent editor)更改显示JComponent的当前值的SpinnerModel。voidsetModel(SpinnerModel model)更改表示此微调器值的模型。voidsetUI(SpinnerUI ui)设置渲染此组件的外观和感觉(L&F)对象。voidsetValue(Object value)更改模型的当前值,通常该值由editor显示。voidupdateUI()使用当前外观的值重置UI属性。-
Methods inherited from class 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, 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
-
Methods inherited from class 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
-
Methods inherited from class 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
-
-
-
-
构造方法详细信息
-
JSpinner
public JSpinner(SpinnerModel model)
构造给定模型的旋转器。 微调器具有一组前一个/下一个按钮,以及适用于该模型的编辑器。- 参数
-
model- 新的微调器的模型 - 异常
-
NullPointerException- 如果型号是null
-
JSpinner
public JSpinner()
构造一个带有初始值为0的Integer SpinnerNumberModel的旋转器,并且没有最小或最大限制。
-
-
方法详细信息
-
getUI
public SpinnerUI getUI()
返回渲染此组件的外观和感觉(L&F)对象。- 重写:
-
getUI在JComponent - 结果
-
SpinnerUI呈现此组件的对象
-
setUI
public void setUI(SpinnerUI ui)
设置渲染此组件的外观和感觉(L&F)对象。- 参数
-
ui-SpinnerUIL&F对象 - 另请参见:
-
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属性。
-
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)
更改表示此微调器值的模型。 如果编辑器属性尚未被明确设置,编辑器属性(隐含地)设置为"model"PropertyChangeEvent已被触发。 编辑器属性设置为createEditor返回的值,如:setEditor(createEditor(model));- 参数
-
model- 新的SpinnerModel - 异常
-
IllegalArgumentException- 如果型号是null - 另请参见:
-
getModel(),getEditor(),setEditor(javax.swing.JComponent)
-
getModel
public SpinnerModel getModel()
返回定义该旋转序列值的SpinnerModel。- 结果
- 模型属性的值
- 另请参见:
-
setModel(javax.swing.SpinnerModel)
-
getValue
public Object getValue()
返回模型的当前值,通常这个值由editor显示。 如果用户已经改变由显示的值editor有可能为model的价值,从该的不同editor,请参阅类级别的javadoc对于如何处理这方面的例子。这种方法只是委托给
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()
返回使用addChangeListener()添加到此JSpinner的所有ChangeListener的数组。- 结果
-
所有添加的
ChangeListener或一个空数组,如果没有添加听众 - 从以下版本开始:
- 1.4
-
fireStateChanged
protected void fireStateChanged()
发送一个ChangeEvent,其来源是这个JSpinner,每个ChangeListener。 当一个ChangeListener已添加到微调器时,每次从模型接收到一个ChangeEvent时,都会调用此方法。
-
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- 如果编辑是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- Specified by:
-
getAccessibleContext在接口Accessible - 重写:
-
getAccessibleContext在Component - 结果
-
AccessibleContext为JSpinner - 从以下版本开始:
- 1.5
-
-