Java Vector类不更新

时间:2015-05-06 23:04:57

标签: java vector jlist

所以我正在研究一个介绍级Java类的程序,并且在使用Vector将数据动态显示到GUI时遇到了问题。我们将数据存储在链表中,并使用向量来显示动态列表,显示GUI侧面的数据成员。我们可以很好地添加和删除链表中的数据,当我们添加它时,矢量会自动更新(我们在每次成功添加和删除结束时都会调用它)。但是,当我们从链表中成功删除数据成员时,数据将保留在显示向量的Jlist上。我们需要使用vector,不能使用通用的ArrayList。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

假设JListVector支持(通过使用JList(Vector<?> listData)构造函数),JList会将值从向量中复制一次,而不再读取它。这意味着对矢量的更改不会反映在JList中。

要让您的JList动态更新,您需要使用ListModel。常见的方法是使用DefaultListModel创建JList,然后相应地更新DefaultListModel。 DefaultListModel将在您修改时触发相应的ListDataEvents

DefaultListModel listModel = new DefaultListModel();
JList jlist = new JList(listModel);
// to update
listModel.addElement("foo");
listModel.addElement("bar");
相关问题