Java tutorial
import java.awt.BorderLayout; import java.util.List; import javax.swing.JFrame; import javax.swing.JSpinner; import javax.swing.SpinnerListModel; import javax.swing.SpinnerModel; public class MainClass { public static void main(final String args[]) { JFrame frame = new JFrame("JSpinner Dates"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); SpinnerModel model3 = new RolloverSpinnerListModel(new String[] { "a", "b", "c" }); JSpinner spinner3 = new JSpinner(model3); frame.add(spinner3, BorderLayout.SOUTH); frame.setSize(200, 90); frame.setVisible(true); } } class RolloverSpinnerListModel extends SpinnerListModel { public RolloverSpinnerListModel(List<?> values) { super(values); } public RolloverSpinnerListModel(Object[] values) { super(values); } public Object getNextValue() { Object returnValue = super.getNextValue(); if (returnValue == null) { returnValue = getList().get(0); } return returnValue; } public Object getPreviousValue() { Object returnValue = super.getPreviousValue(); if (returnValue == null) { List list = getList(); returnValue = list.get(list.size() - 1); } return returnValue; } }