Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Custom Models

import java.awt.BorderLayout; import java.util.List; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.SpinnerListModel; 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;   } } public class RolloverSpinnerListModelSample {   public static void main(String args[]) {     JFrame frame = new JFrame("JSpinner Sample");     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     String[] values = new String[]{"a","b","c"};          RolloverSpinnerListModel model = new RolloverSpinnerListModel(values);          JSpinner spinner1 = new JSpinner(model);     JPanel panel1 = new JPanel(new BorderLayout());     panel1.add(spinner1, BorderLayout.CENTER);     frame.add(panel1, BorderLayout.SOUTH);       frame.setSize(200, 90);     frame.setVisible(true);   } }