Java JList模型

时间:2010-05-23 19:12:30

标签: java swing jlist

如何从JList创建列表模型,以便能够将项目插入其中。 我想使用这种方法:addElement(java.lang.Object item)

我找到了解释here,但问题是ListModel是一个接口 即使我编写实现并覆盖其方法,我也不能使用addElement()方法

3 个答案:

答案 0 :(得分:6)

Java提供ListModel的实现,如DefaultListModel,您可以实例化和使用

例如:

final DefaultListModel model = new DefaultListModel();
model.addElement("one");
model.addElement("two");
model.addElement("three");

final JList list = new JList(model);

答案 1 :(得分:4)

查看此Sun Tutorial。包含有关如何将列表添加到JList的示例

答案 2 :(得分:1)

如果有人需要使用自定义ListModel,这只是一种替代方法。在实现列表模型接口的类内部,有必要创建一个结构来实际容纳诸如LinkedList之类的元素,如下所示:

public class MyListModel implements ListModel{
    
    private LinkedList data;
    private LinkedList<ListDataListener> listeners;

    public MyListModel() {
        data = new LinkedList();
        listeners = new LinkedList();
    }
    
    public void addElement(Object element){
        data.add(element);
    }
    
    @Override
    public int getSize() {
        return data.size();
    }

    @Override
    public Object getElementAt(int index) {
        return data.get(index);
    }

    @Override
    public void addListDataListener(ListDataListener l) {
        listeners.add(l);
    }

    @Override
    public void removeListDataListener(ListDataListener l) {
        listeners.remove(l);
    }
    
}

您还可以创建访问方法以执行与LinkedList相关的任何操作,例如removeElement(Object element),或仅公开数据LinkedList,或在必要时使用其他数据结构。当然,对于简单的实现,使用Java随附的模型将总是更加容易。