所以我有一个JList,当调用方法时,我会向它添加数据。我希望能够刷新JList中的数据,但每次我尝试从JList中删除时,新数据都会附加到旧数据上。因此,基本上,当按下按钮时,它会调用该方法,并且JList应该更新(清除旧数据,读入新数据)。
我尝试从模型中清除数据,当我请求大小时,它说它是0,但它仍然是附加的。我还试着从列表中删除。让我发疯,任何帮助都将不胜感激。基本上我就是这样做的,每次方法调用时"新数据"都会发生变化。
DefaultListModel model = new DefaultListModel();
JList list = new JList(model);
public void method(){
if(model.size() > 0){
model.removeAllElements();
model.clear();
list.removeAll();
}
model.addElement("new Data");
model.addElement("new Data");
}
首先,不要调用list.removeAll
,虽然它不太可能做任何事情,但以这种方式处理组件是不明智的。
最简单的解决方案是只替换JList
的ListModel
。。。
list.setModel(new DefaultListModel());
或者,在你的情况下,类似于。。。
model = new DefaultListModel();
list.setModel(model);
model.addElement("new Data");
如果这不起作用,那么您可能在跟踪变量,在这种情况下,请考虑提供一个可运行的示例来演示您的问题。这将减少混乱并获得更好的响应