Javax Swing Java by API

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;
  }
}