http://www.blogjava.net/nobody_am/articles/7835.htmlimport javax.swing.*;
import javax.swing.event.*;
import java.text.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;public class TestClass {
  public static void main (String args[]) throws Exception {
    JFrame frame = new JFrame("Spinner");
    frame.setDefaultCloseOperation(3);
    String[] months = new DateFormatSymbols().getMonths();
    SpinnerModel model = new SpinnerListModel(months);
    JSpinner spinner = new JSpinner(model);
    frame.getContentPane().add(spinner, BorderLayout.NORTH);    SpinnerDateModel model2 = new SpinnerDateModel();
    model2.setCalendarField(Calendar.WEEK_OF_MONTH);
    JSpinner spinner2 = new JSpinner(model2);
    JSpinner.DateEditor editor2 = new JSpinner.DateEditor(
      spinner2, "MMMMM dd, yyyy");
    spinner2.setEditor(editor2);
    frame.getContentPane().add(spinner2, BorderLayout.SOUTH);    final SpinnerNumberModel model3 = new SpinnerNumberModel(Integer.parseInt(new SimpleDateFormat("yyyy").format(new Date())), 2000, 2200, 1);
    JSpinner spinner3 = new JSpinner(model3);
    JSpinner.NumberEditor editor3 = new JSpinner.NumberEditor(
        spinner3,"####");
      spinner3.setEditor(editor3);
    frame.getContentPane().add(spinner3, BorderLayout.CENTER);    ChangeListener listener = new ChangeListener() {
      public void stateChanged(ChangeEvent e) {
        SpinnerModel source = (SpinnerModel)e.getSource();
        System.out.println("The value is: " + source.getValue());
      }
    };
    model.addChangeListener(listener);
    model2.addChangeListener(listener);
    model3.addChangeListener(listener);    JButton button=new JButton("Submit");
    frame.getContentPane().add(button, BorderLayout.EAST);
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent event)
      {
        System.out.println(model3.getValue());
      }
    });
    
    frame.pack();
    frame.show();
  }
}