e792. 建立一个包括所有数据的SpinnerListModel

By default, if the user is browsing the values in a SpinnerListModel, 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);
        }
    }

 

Related Examples
posted @ 2018-09-06 09:07  borter  阅读(158)  评论(0编辑  收藏  举报