如何按升序对ListModel进行排序?

时间:2016-10-04 08:30:01

标签: java swing sorting

我的JList有以下自定义类:

package ericsonwrp.republica.vintage.caixa;

import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.SortedSet;
import java.util.TreeSet;

import javax.swing.AbstractListModel;

@SuppressWarnings("hiding")
class SortedListModel<Object> extends AbstractListModel<Object> {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    SortedSet<Object> model;

    public SortedListModel() {
        model = new TreeSet<Object>();
    }

    public int getSize() {
        return model.size();
    }

    @SuppressWarnings("unchecked")
    public Object getElementAt(int index) {
        return (Object) model.toArray()[index];
    }

    public void addElement(Object element) {
        if (model.add(element)) {
            fireContentsChanged(this, 0, getSize());
        }
    }

    public void addAll(Object elements[]) {
        Collection<Object> c = Arrays.asList(elements);
        model.addAll(c);
        fireContentsChanged(this, 0, getSize());
    }

    public void removeAllElements() {
        model.clear();
        fireContentsChanged(this, 0, getSize());
    }

    public boolean contains(Object element) {
        return model.contains(element);
    }

    public Object firstElement() {
        return model.first();
    }

    public Iterator<Object> iterator() {
        return model.iterator();
    }

    public Object lastElement() {
        return model.last();
    }

    public boolean removeElement(Object element) {
        boolean removed = model.remove(element);
        if (removed) {
            fireContentsChanged(this, 0, getSize());
        }
        return removed;
    }
}

SortedSet没有像预期的那样排序,你可以看到:

enter image description here

它从0变为1然后变为10而不是2.如何按升序对ListModel进行排序?

0 个答案:

没有答案