【发布时间】:2012-01-05 08:24:12
【问题描述】:
我正在尝试将 ArrayList 中的项目添加到 JList 中,当我使用以下代码时它正在工作:
private void UpdateJList(){
DefaultListModel<String> model = new DefaultListModel<String>();
for(Person p : personList){
model.addElement(p.ToString());
}
clientJList.setModel(model);
clientJList.setSelectedIndex(0);
}
但是,如果我在方法之外声明DefaultListModel,则添加会增加每个项目,IE 不是每个项目添加一个,而是添加多个项目。我只是想知道为什么会这样?
【问题讨论】:
-
您必须执行两次 UpdateJList() 代码,因此项目会被添加两次。发布您的 SSCCE 来证明问题。
-
是重复调用 UpdateJList 还是只调用一次?可能值得在方法中添加一个日志,以确保它只被调用一次。我想,你可能想在模型开始时对模型做一个 .clear() ,因为你将它用作类级别的变量。
-
@aishwarya - 谢谢先生 :) 清除模型解决了问题 :)
-
请学习java命名约定并遵守它们
标签: java swing arraylist jlist defaultlistmodel