/*
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);
}
}
|