所以我有一个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");
}
答案 0 :(得分:3)
首先,请勿致电list.removeAll
,虽然它不太可能做任何事情,但以这种方式搞乱组件并不明智。
最简单的解决方案是只替换JList
' ListModel
...
list.setModel(new DefaultListModel());
或者,在你的情况下,像... ...
model = new DefaultListModel();
list.setModel(model);
model.addElement("new Data");
如果这不起作用,那么您可能会隐藏变量,在这种情况下,请考虑提供一个runnable example来证明您的问题。这将减少混淆和更好的响应