Java排序和可迭代的Defaultlistmodel

标签 java swing sorting jlist defaultlistmodel

我正在尝试扩展 DefaultListModel,使其可排序和可迭代。我在这里找到了一些代码http://www.javalobby.org/java/forums/t94074.html 。我现在尝试参数化此代码,但 addAll、containsAll、removeAll、retainAll 和 toArray 方法都给出名称冲突错误。我有点明白为什么会这样,但我不确定如何解决它。有一个更好的方法吗?代码如下

package main;

import javax.swing.DefaultListModel;

import javax.swing.*;
import java.util.*;

public class DefaultListModelSort<E extends Object> extends DefaultListModel<E>
        implements List<E> {
    private Delegate m_delegate = new Delegate();

    public DefaultListModelSort() {
        super();
    }

    public DefaultListModelSort(Collection<E> c) {
        this();
        addAll(c);
    }

    public boolean add(E o) {
        return m_delegate.add(o);
    }

    public boolean removeE(E o) {
        return m_delegate.remove(o);
    }

    public boolean addAll(int index, Collection<E> c) {
        return m_delegate.addAll(index, c);
    }

    public boolean addAll(Collection<E> c) {
        return m_delegate.addAll(c);
    }

    public boolean containsAll(Collection<E> c) {
        return m_delegate.containsAll(c);
    }

    public boolean removeAll(Collection<E> c) {
        return m_delegate.removeAll(c);
    }

    public boolean retainAll(Collection<E> c) {
        return m_delegate.retainAll(c);
    }

    public Iterator<E> iterator() {
        return m_delegate.iterator();
    }

    public List<E> subList(int fromIndex, int toIndex) {
        return m_delegate.subList(fromIndex, toIndex);
    }

    public ListIterator<E> listIterator() {
        return m_delegate.listIterator();
    }

    public ListIterator<E> listIterator(int index) {
        return m_delegate.listIterator(index);
    }

    public E[] toArray(E a[]) {
        return m_delegate.toArray(a);
    }

    /**
     * This class extends AbstractList so we get all the functionality of
     * iterators and such for free.
     */
    private class Delegate extends AbstractList<E> {

        public Delegate() {
            super();
        }

        public E get(int index) {
            return DefaultListModelSort.super.get(index);
        }

        public int size() {
            return DefaultListModelSort.super.size();
        }

        public E set(int index, E element) {
            return DefaultListModelSort.super.set(index, element);
        }

        public void add(int index, E element) {
            DefaultListModelSort.super.add(index, element);
        }

        public E remove(int index) {
            return DefaultListModelSort.super.remove(index);
        }
    }
}

最佳答案

I'm trying to extend the DefaultListModel so it will be sort-able and iterable.

关于Java排序和可迭代的Defaultlistmodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23848410/

相关文章:

java - Modal JDialog 在 Solaris CDE 上消失在父级后面

javascript - 如何对嵌套对象映射进行排序并根据排序高效地赋值?

php - mysql匹配值,找到相似并排序,然后按原始匹配值对排序后的组进行排序

java - 使用内部类在 JavaFX 中显示三角形

java - CouchBase 与 Memcached 混合,失去了大多数 CouchDB 理念和功能?

java - GridBagLayout 左对齐

java - Swing 应用程序的复杂日历

java - Spring Boot数据JPA持久化到数据库报错

java - 如何从 Apache 服务器日志中解析 IP 地址?

c# - 将字符串数组排序为整数,但可以有非整数值