public class JSpinner extends JComponent implements Accessible
 JSpinner的序列值由其SpinnerModel定义。 该model可以被指定为构造函数的参数,并与改变model财产。 SpinnerModel提供了类的一些常见类型: SpinnerListModel , SpinnerNumberModel和SpinnerDateModel 。 
 A JSpinner具有单个子组件,负责显示和潜在地更改模型的当前元素或值 ,这称为editor 。 编辑器由JSpinner的构造函数创建,可以使用editor属性更改。 JSpinner的编辑器通过聆听ChangeEvent s与模特保持同步。 如果用户已经改变由所述显示的值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();  
       有关使用旋转器的信息和示例,请参阅How to Use Spinners “Java教程 ”中的一节。
警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy 。
 警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已经添加到java.beans包中。 请参阅XMLEncoder 。 
SpinnerModel , AbstractSpinnerModel , SpinnerListModel , SpinnerNumberModel , SpinnerDateModel , JFormattedTextField 
       | Modifier and Type | Class and Description | 
|---|---|
| protected class  | JSpinner.AccessibleJSpinnerAccessibleJSpinner实现JSpinner类的辅助功能支持。 | 
| static class  | JSpinner.DateEditor
              一个 
              JSpinner的编辑器,其型号是SpinnerDateModel。 | 
| static class  | JSpinner.DefaultEditor
              更专业的编辑器的简单基类,用JFormattedTextField显示模型当前值的 
              JFormattedTextField。 | 
| static class  | JSpinner.ListEditor
              一个 
              JSpinner为JSpinner的模特是SpinnerListModel。 | 
| static class  | JSpinner.NumberEditor
              一个 
              JSpinner的编辑器,其型号是SpinnerNumberModel。 | 
JComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategylistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Constructor and Description | 
|---|
| JSpinner()
              构造一个旋涂器 
              Integer SpinnerNumberModel使用初始值0并且没有最低或最高限度。 | 
| JSpinner(SpinnerModel model)
              构造给定模型的旋转器。 
             | 
| Modifier and Type | Method and Description | 
|---|---|
| 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()
              返回使用addChangeListener()添加到此JSpinner的所有 
              ChangeListener的数组。 | 
| 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属性。 
             | 
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, updateadd, 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, validateTreeaction, 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, transferFocusUpCyclepublic JSpinner(SpinnerModel model)
NullPointerException - 如果型号是 
            null 
           public JSpinner()
Integer SpinnerNumberModel使用初始值0并且没有最低或最高限度。 
          public SpinnerUI getUI()
SpinnerUI对象 
           public void setUI(SpinnerUI ui)
ui - 
            SpinnerUI L&F对象 
           UIDefaults.getUI(javax.swing.JComponent) 
           public String getUIClassID()
getUIClassID在 
            JComponent 
           JComponent.getUIClassID() , 
            UIDefaults.getUI(javax.swing.JComponent) 
           public void updateUI()
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) 
           public void setModel(SpinnerModel model)
"model" PropertyChangeEvent已被触发。 
           编辑器属性设置为createEditor返回的值,如: 
             setEditor(createEditor(model));  
          model - 全新 
            SpinnerModel 
           IllegalArgumentException - 如果型号是 
            null 
           getModel() , 
            getEditor() , 
            setEditor(javax.swing.JComponent) 
           public SpinnerModel getModel()
SpinnerModel 。 
          setModel(javax.swing.SpinnerModel) 
           public Object getValue()
editor 。 
           如果用户已经改变由显示的值editor ,可以为model的价值,从该的不同editor ,请参阅类级别的javadoc对于如何处理这方面的例子。 
            这个方法只是委托给model 。 相当于: 
  getModel().getValue()  
          public void setValue(Object value)
editor 。 
           如果SpinnerModel实现不支持指定的值,则抛出IllegalArgumentException 。 
            这个方法只是委托给model 。 相当于: 
  getModel().setValue(value)  
          IllegalArgumentException - 如果 
            value 
           getValue() , 
            SpinnerModel.setValue(java.lang.Object) 
           public Object getNextValue()
getValue()返回的对象后面的序列中的对象。 
           如果序列的结尾已经到达,那么返回null 。 
           调用此方法不影响value 。 
            这个方法只是委托给model 。 相当于: 
  getModel().getNextValue()  
          null如果不存在 
           getValue() , 
            getPreviousValue() , 
            SpinnerModel.getNextValue() 
           public void addChangeListener(ChangeListener listener)
ChangeEvents的来源发送到ChangeListeners将是这个JSpinner 。 
           还要注意,替换模型不会影响直接添加到JSpinner的监听器。 
           应用程序可以直接向模型添加监听器。 
           在这种情况下,事件的来源将是SpinnerModel 。 
          listener - 要添加的 
            ChangeListener 
           removeChangeListener(javax.swing.event.ChangeListener) , 
            getModel() 
           public void removeChangeListener(ChangeListener listener)
ChangeListener 。 
          listener - 要删除的 
            ChangeListener 
           fireStateChanged() , 
            addChangeListener(javax.swing.event.ChangeListener) 
           public ChangeListener[] getChangeListeners()
ChangeListener的数组。 
          ChangeListener如果没有添加任何监听器,则为空数组 
           protected void fireStateChanged()
ChangeEvent ,其来源是这JSpinner ,每个ChangeListener 。 
           当一个ChangeListener已添加到微调器时,每次从模型接收到一个ChangeEvent时,将调用此方法方法。 
          public Object getPreviousValue()
getValue()返回的对象之前的序列中的对象。 
           如果序列的结尾已经到达,则返回null 。 
           调用此方法不影响value 。 
            这个方法只是委托给model 。 相当于: 
  getModel().getPreviousValue()  
          null如果不存在 
           getValue() , 
            getNextValue() , 
            SpinnerModel.getPreviousValue() 
           public void setEditor(JComponent editor)
JComponent的当前值的SpinnerModel 。 
           这种方法有责任将旧的编辑器与模型断开连接,并连接新的编辑器。 
           这可能意味着从模型或微调器本身中删除旧编辑器ChangeListener ,并为新编辑器添加一个。 
          editor - 新编辑 
           IllegalArgumentException - 如果编辑器是 
            null 
           getEditor() , 
            createEditor(javax.swing.SpinnerModel) , 
            getModel() 
           public JComponent getEditor()
setEditor(javax.swing.JComponent) , 
            createEditor(javax.swing.SpinnerModel) 
           public void commitEdit()
                throws ParseException 
          SpinnerModel 。 
            如果编辑器是一个DefaultEditor一个实例,调用如果转发给编辑器,否则这样做什么都不做。 
ParseException - 如果当前编辑的值无法提交。 
           public AccessibleContext getAccessibleContext()
AccessibleContext为 
           JSpinner 
          getAccessibleContext在接口 
            Accessible 
           getAccessibleContext在 
            Component 
           AccessibleContext为 
            JSpinner 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.