![]() |
The Java Developers Almanac 1.4Order this book from Amazon. |
e792. Creating a SpinnerListModel That Loops Through Its ValuesBy default, if the user is browsing the values in aSpinnerListModel , the iteration stops when either end is reached.
This example demonstrates a subclass that allows the user to
continuously loop through the values.
SpinnerCircularListModel listModel = new SpinnerCircularListModel( new String[]{"red", "green", "blue"}); JSpinner spinner = new JSpinner(listModel); public class SpinnerCircularListModel extends SpinnerListModel { public SpinnerCircularListModel(Object[] items) { super(items); } // Returns the next value. If the current value is at the end // of the list, returns the first value. // There must be at least one item in the list. public Object getNextValue() { java.util.List list = getList(); int index = list.indexOf(getValue()); index = (index >= list.size()-1) ? 0 : index+1; return list.get(index); } // Returns the previous value. If the current value is at the // start of the list, returns the last value. // There must be at least one item in the list. public Object getPreviousValue() { java.util.List list = getList(); int index = list.indexOf(getValue()); index = (index <= 0) ? list.size()-1 : index-1; return list.get(index); } }
e787. Creating an Hour JSpinner Component e788. Disabling Keyboard Editing in a JSpinner Component e789. Limiting the Values in a Number JSpinner Component e790. Setting the Margin Space on a JSpinner Component e791. Customizing the Editor in a JSpinner Component e793. Listening for Changes to the Value in a JSpinner Component © 2002 Addison-Wesley. |