SWING - JSpinner Class
Introduction
The class JSpinner is a component which lets the user select a number or an object value from an ordered sequence using an input field.
Class Declaration
Following is the declaration for javax.swing.JSpinner class −
public class JSpinner extends JComponent implements Accessible
Class Constructors
| Sr.No. | Constructor & Description |
|---|---|
| 1 | JSpinner() Constructs a spinner with an Integer SpinnerNumberModel with initial value 0 and no minimum or maximum limits. |
| 2 | JSpinner(SpinnerModel model) Constructs a complete spinner with pair of next/previous buttons and an editor for the SpinnerModel. |
Class Methods
| Sr.No. | Method & Description |
|---|---|
| 1 | void addChangeListener(ChangeListener listener) Adds a listener to the list who that is notified each time a change to the model occurs. |
| 2 | void commitEdit() Commits the currently edited value to the SpinnerModel. |
| 3 | protected JComponent createEditor(SpinnerModel model) This method is called by the constructors to create the JComponent that displays the current value of the sequence. |
| 4 | protected void fireStateChanged() Sends a ChangeEvent, whose source is this JSpinner, to each ChangeListener. |
| 5 | AccessibleContext getAccessibleContext() Gets the AccessibleContext for the JSpinner. |
| 6 | ChangeListener[] getChangeListeners() Returns an array of all the ChangeListeners added to this JSpinner with addChangeListener(). |
| 7 | JComponent getEditor() Returns the component that displays and potentially changes the model's value. |
| 8 | SpinnerModel getModel() Returns the SpinnerModel that defines this spinners sequence of values. |
| 9 | Object getNextValue() Returns the object in the sequence that comes after the object returned by getValue(). |
| 10 | Object getPreviousValue() Returns the object in the sequence that comes before the object returned by getValue(). |
| 11 | SpinnerUI getUI() Returns the look and feel (L&F) object that renders this component. |
| 12 | String getUIClassID() Returns the suffix used to construct the name of the look and feel (L&F) class used to render this component. |
| 13 | Object getValue() Returns the current value of the model, typically this value is displayed by the editor. |
| 14 | void removeChangeListener(ChangeListener listener) Removes a ChangeListener from this spinner. |
| 15 | void setEditor(JComponent editor) Changes the JComponent that displays the current value of the SpinnerModel. |
| 16 | void setModel(SpinnerModel model) Changes the model that represents the value of this spinner. |
| 17 | void setUI(SpinnerUI ui) Sets the look and feel (L&F) object that renders this component. |
| 18 | void setValue(Object value) Changes the current value of the model, typically this value is displayed by the editor. |
| 19 | void updateUI() Resets the UI property with the value from the current look and feel. |
Methods Inherited
This class inherits methods from the following classes −
- javax.swing.JComponent
- java.awt.Container
- java.awt.Component
- java.lang.Object
JSpinner Example
Create the following Java program using any editor of your choice in say D:/ > SWING > com > tutorialspoint > gui >
SwingControlDemo.java
package com.tutorialspoint.gui; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class SwingControlDemo { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public SwingControlDemo(){ prepareGUI(); } public static void main(String[] args){ SwingControlDemo swingControlDemo = new SwingControlDemo(); swingControlDemo.showSpinnerDemo(); } private void prepareGUI(){ mainFrame = new JFrame("Java Swing Examples"); mainFrame.setSize(400,400); mainFrame.setLayout(new GridLayout(3, 1)); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); headerLabel = new JLabel("", JLabel.CENTER); statusLabel = new JLabel("",JLabel.CENTER); statusLabel.setSize(350,100); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showSpinnerDemo(){ headerLabel.setText("Control in action: JSpinner"); SpinnerModel spinnerModel = new SpinnerNumberModel(10, //initial value 0, //min 100, //max 1);//step JSpinner spinner = new JSpinner(spinnerModel); spinner.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { statusLabel.setText("Value : " + ((JSpinner)e.getSource()).getValue()); } }); controlPanel.add(spinner); mainFrame.setVisible(true); } } Compile the program using the command prompt. Go to D:/ > SWING and type the following command.
D:\SWING>javac com\tutorialspoint\gui\SwingControlDemo.java
If no error occurs, it means the compilation is successful. Run the program using the following command.
D:\SWING>java com.tutorialspoint.gui.SwingControlDemo
Verify the following output.