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 a 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 contains a upward and a downward arrow to show the previous and the next element when it is pressed.

Constructors of JSpinner are:

  1. JSpinner() : Creates an empty spinner with initial value set to zero and no contraints
  2. JSpinner( SpinnerModel model)
    creates a spinner with a specified spinner model passed as argument .
  3. Commonly used methods are :



    1. 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.
    2. 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.
    3. setValue(Object v) : sets the value of the spinner to the object passed as argument.
    4. getValue() : returns the current value of the spinner.
    5. getPreviousValue() : returns the previous value of the spinner.
    6. getNextValue() : returns the next value of the spinner.

    1. Program to create a simple JSpinner

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // java Program to create a
    // simple JSpinner
    import 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();
        }
    }

    chevron_right

    
    

    Output :

    2. Program to create a JSpinner and add ChangeListener to it ; Program to select your date of birth using JSpinner)

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to select your
    // date of birth using JSpinner
    import 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());
        }
    }

    chevron_right

    
    

    Output :

    Note : This program will not run in an online compiler please use an Offline IDE



    My Personal Notes arrow_drop_up

    Second year Department of Information Technology Jadavpur University

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.