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.AccessibleJSpinner
AccessibleJSpinner实现
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.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategylistenerList, TOOL_TIP_TEXT_KEY,
ui, UNDEFINED_CONDITION,
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,
WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, 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,
update
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
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
public 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.NumberEditorSpinnerDateModel => JSpinner.DateEditorSpinnerListModel => JSpinner.ListEditorJSpinner.DefaultEditormodel - 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