编辑或刷新JList

时间:2011-10-23 14:31:44

标签: java swing jlist

我有一个简单的幻灯片程序,在我的应用程序的左侧,有一个JList显示当前应用程序上的幻灯片。我可以保存并加载幻灯片。问题是,当我尝试从XML文件加载幻灯片时,我无法删除JList中的所有项目,并添加它们。因为当我按model.removeAllElements();删除元素然后尝试添加项目时;

    for(int i=0; i<mL.size(); i++){
        model.add(i, "Slide No: " + i);
        slideCounter++;
    }

然后调用valueChanged函数,因为我从该函数中的arrayList获取元素,它给出了ArrayIndexOutOfBoundsException

因此,在我的load方法中,我创建了一个新的空列表(dMode),然后用幻灯片数量初始化列表:

    list = new JList(dMode);
    jScrollPane1 = new JScrollPane(list);

但我无法将新列表分配到当前列表。

您有什么建议,我该如何解决?

感谢。

1 个答案:

答案 0 :(得分:1)

我要实现自己的ListModel,要么我会使用JGoodies Binding将数据绑定到列表中。使用JGoodies时,只要数组内容发生更改,您的视图模型就会触发PropertyChangeEvent,然后您的视图会自动更新。 E.g。

Bindings.bind(myJList, new SelectionInList<String>
    (beanAdapter.getValueModel("listContents"),
     beanAdapter.getValueModel("listSelection")));

使用视图模型类,该类具有列表内容的属性,以及当前选择的属性。