Java tutorial
/* Java Swing, 2nd Edition By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole ISBN: 0-596-00408-7 Publisher: O'Reilly */ // SwingSpinnerTest.java //A quick test of various spinners. // import java.awt.Container; import java.awt.GridLayout; import java.util.List; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSpinner; import javax.swing.SpinnerDateModel; import javax.swing.SpinnerListModel; import javax.swing.SpinnerNumberModel; public class SwingSpinnerTest extends JFrame { public SwingSpinnerTest() { super("JSpinner Test"); setSize(300, 180); setDefaultCloseOperation(EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(new GridLayout(0, 2)); c.add(new JLabel(" Basic Spinner")); c.add(new JSpinner()); c.add(new JLabel(" Date Spinner")); c.add(new JSpinner(new SpinnerDateModel())); String weekdays[] = new String[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; c.add(new JLabel(" List Spinner")); c.add(new JSpinner(new SpinnerListModel(weekdays))); c.add(new JLabel(" Number Spinner")); c.add(new JSpinner(new SpinnerNumberModel(0, 0, 100, 5))); c.add(new JLabel(" Rollover List Spinner")); c.add(new JSpinner(new RolloverSpinnerListModel(weekdays))); setVisible(true); } public static void main(String args[]) { new SwingSpinnerTest(); } } class RolloverSpinnerListModel extends SpinnerListModel { public RolloverSpinnerListModel(Object[] items) { super(items); } public RolloverSpinnerListModel(List items) { super(items); } public Object getNextValue() { Object nv = super.getNextValue(); if (nv != null) { return nv; } return getList().get(0); } public Object getPreviousValue() { Object pv = super.getPreviousValue(); if (pv != null) { return pv; } List l = getList(); return l.get(l.size() - 1); } }