我在从列表中删除旧元素时遇到问题。我尽可能地尝试使用方法clear()
和removeAllElements()
以及removeAll()
,但这似乎并不清楚。
为了帮助您更好地了解情况:
d1
是ArrayList
,其中包含我们计划中的所有可用设备。
availList2
和availList3
正在使用DefaultListModel
。
我们希望这样做,以便当用户从正确的文本文件加载产品时,如果他第二次这样做,我们gui中列出的产品将被原始文本文件中的产品覆盖。但是,即使我们在clear()
(d1
)和ArrayList
中使用了JList
方法,我们最终也会重复产品。
任何有用的提示或可能的原因将不胜感激。非常感谢你提前。
if(ev.getSource() == load_availables) {
int returnVal = chooser.showOpenDialog(mainApp.this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
d1.returnDevices().removeAll(d1.returnDevices());
availList2.clear();
availList3.clear();
//availList2.removeAllElements();
//availList3.removeAllElements();
File file = chooser.getSelectedFile();
read.ReadDevices(file);
for(int i = 0; i < read.Size(); i++) {
d1.add_AvailableDevices(read.get(i));
}
}
}
答案 0 :(得分:1)
如果列表未被清除,那么我建议您在调用DefaultListModel
时没有正确引用JList
clear()
使用的ListDemo
方法
首先阅读How to Use Lists上的Swing教程中的部分。
下载clear()
代码并使用它。改变&#34; Fire&#34;按钮使用DefaultListModel
上的ListDemo
方法向您自己证明这就是您需要做的事情。
看到代码正常工作后,您就会发现代码与template <template T, T value>
void pmf_tparam() {}
工作版本的不同之处。