Java Swing | JSpinner

JSpinner is a part of javax.swing package. JSpinner contains a single line of input which might be a number or a object from an ordered sequence. The user can manually type in a legal data into the text field of the spinner. The spinner is sometimes preferred because they do not need a drop down list. Spinners contain an upward and a downward arrow to show the previous and the next element when it is pressed.
Constructors of JSpinner are:
- JSpinner(): Creates an empty spinner with an initial value set to zero and no constraints.
- JSpinner( SpinnerModel model): Creates a spinner with a specified spinner model passed as an argument.
Commonly used methods are :
- SpinnerListModel(List l): creates a spinner model with elements of list l. This spinner model can be used to set as a model for spinner.
- SpinnerNumberModel(int value, int max, int min, int step): returns a spinner model whose initial value is set to value, with minimum and maximum value, and a definite step value.
- setValue(Object v): sets the value of the spinner to the object passed as argument.
- getValue(): returns the current value of the spinner.
- getPreviousValue(): returns the previous value of the spinner.
- getNextValue(): returns the next value of the spinner.
1. Program to create a simple JSpinner
Java
// java Program to create a// simple JSpinnerimport java.awt.event.*;import javax.swing.*;import java.awt.*;class spinner extends JFrame { // frame static JFrame f; // default constructor spinner() { } // main class public static void main(String[] args) { // create a new frame f = new JFrame("spinner"); // create a JSpinner JSpinner s = new JSpinner(); // set Bounds for spinner s.setBounds(70, 70, 50, 40); // set layout for frame f.setLayout(null); // add panel to frame f.add(s); // set frame size f.setSize(300, 300); f.show(); }} |
Output :
2. Program to create a JSpinner and add ChangeListener to it; Program to select your date of birth using JSpinner.
Java
// Java program to select your// date of birth using JSpinnerimport java.awt.event.*;import javax.swing.*;import java.awt.*;import javax.swing.event.*;class spinner1 extends JFrame implements ChangeListener { // frame static JFrame f; // label static JLabel l, l1; // spinner static JSpinner s, s1, s2; // default constructor spinner1() { } // main class public static void main(String[] args) { // create an object of the class spinner1 sp1 = new spinner1(); // create a new frame f = new JFrame("spinner"); // create a label l = new JLabel("select your date of birth"); l1 = new JLabel("1 January 2000"); // create a JSpinner with a minimum, maximum and step value s = new JSpinner(); s1 = new JSpinner(new SpinnerNumberModel(1, 1, 31, 1)); // setvalue of year s.setValue(2000); // store the months String months[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "Novemeber", "December" }; // create a JSpinner with list values s2 = new JSpinner(new SpinnerListModel(months)); // add change listener to spinner s.addChangeListener(sp1); s1.addChangeListener(sp1); s2.addChangeListener(sp1); // set Bounds for spinner s.setBounds(70, 70, 50, 40); s1.setBounds(70, 130, 50, 40); s2.setBounds(70, 200, 90, 40); // setbounds for label l.setBounds(10, 10, 150, 20); l1.setBounds(10, 300, 150, 20); // set layout for frame f.setLayout(null); // add label f.add(l); f.add(l1); f.add(s); f.add(s1); f.add(s2); // add panel to frame f.add(s); // set frame size f.setSize(400, 400); f.show(); } // if the state is changed public void stateChanged(ChangeEvent e) { l1.setText(s1.getValue() + " " + s2.getValue() + " " + s.getValue()); }} |
Output :
Note: This program will not run in an online compiler please use an Offline IDE.




