public static class JSpinner.DefaultEditor extends JPanel implements ChangeListener, PropertyChangeListener, LayoutManager
A simple base class for more specialized editors that displays a read-only view of the model's current value with a
JFormattedTextField. Subclasses can configure the
JFormattedTextField to create an editor that's appropriate for the type of model they support and they may want to override the
propertyChanged methods, which keep the model and the text field in sync.
This class defines a
dismiss method that removes the editors
ChangeListener from the
JSpinner that it's part of. The
setEditor method knows about
DefaultEditor.dismiss, so if the developer replaces an editor that's derived from
ChangeListener connection back to the
JSpinner will be removed. However after that, it's up to the developer to manage their editor listeners. Similarly, if a subclass overrides
createEditor, it's up to the subclasser to deal with their editor subsequently being replaced (with
setEditor). We expect that in most cases, and in editor installed with
setEditor or created by a
createEditor override, will not be replaced anyway.
This class is the
LayoutManager for it's single
JFormattedTextField child. By default the child is just centered with the parents insets.
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
listenerList, 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_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
public DefaultEditor(JSpinner spinner)
Constructs an editor component for the specified
DefaultEditor is it's own layout manager and it is added to the spinner's
ChangeListener list. The constructor creates a single
JFormattedTextField child, initializes it's value to be the spinner model's current value and adds it to
spinner- the spinner whose model
thiseditor will monitor
public void dismiss(JSpinner spinner)
this editor from the specified
JSpinner. By default, this method removes itself from the spinners
JSpinnerto disconnect this editor from; the same spinner as was passed to the constructor.
public JSpinner getSpinner()
JSpinner ancestor of this editor or
null if none of the ancestors are a
JSpinner. Typically the editor's parent is a
JSpinner however subclasses of
JSpinner may override the the
createEditor method and insert one or more containers between the
JSpinner and it's editor.
nullif none of the ancestors are a
public JFormattedTextField getTextField()
JFormattedTextField child of this editor. By default the text field is the first and only child of editor.
JFormattedTextFieldthat gives the user access to the
public void stateChanged(ChangeEvent e)
This method is called when the spinner's model's state changes. It sets the
value of the text field to the current value of the spinners model.
ChangeEventwhose source is the
JSpinnerwhose model has changed.
public void propertyChange(PropertyChangeEvent e)
Called by the
PropertyChangeListener. When the
"value" property changes, which implies that the user has typed a new number, we set the value of the spinners model.
This class ignores
PropertyChangeEvents whose source is not the
JFormattedTextField, so subclasses may safely make
PropertyChangeListener on other objects.
PropertyChangeEventwhose source is the
JFormattedTextFieldcreated by this class.
public void addLayoutComponent(String name, Component child)
LayoutManager method does nothing. We're only managing a single child and there's no support for layout constraints.
public void removeLayoutComponent(Component child)
LayoutManager method does nothing. There isn't any per-child state.
public Dimension preferredLayoutSize(Container parent)
Returns the preferred size of first (and only) child plus the size of the parents insets.
parent- the Container that's managing the layout
public Dimension minimumLayoutSize(Container parent)
Returns the minimum size of first (and only) child plus the size of the parents insets.
parent- the Container that's managing the layout
public void layoutContainer(Container parent)
Resize the one (and only) child to completely fill the area within the parents insets.
parent- the container to be laid out
public void commitEdit() throws ParseException
Pushes the currently edited value to the
The default implementation invokes
commitEdit on the
ParseException- if the edited value is not legal
public int getBaseline(int width, int height)
Returns the baseline.
width- the width to get the baseline for
height- the height to get the baseline for
IllegalArgumentException- if width or height is < 0
public Component.BaselineResizeBehavior getBaselineResizeBehavior()
Returns an enum indicating how the baseline of the component changes as the size changes.
© 1993–2017, 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.