清除JList

时间:2014-11-01 01:02:40

标签: java swing jlist defaultlistmodel

所以我有一个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");

}

1 个答案:

答案 0 :(得分:3)

首先,请勿致电list.removeAll,虽然它不太可能做任何事情,但以这种方式搞乱组件并不明智。

最简单的解决方案是只替换JList' ListModel ...

list.setModel(new DefaultListModel());

或者,在你的情况下,像... ...

model = new DefaultListModel();
list.setModel(model);
model.addElement("new Data");

如果这不起作用,那么您可能会隐藏变量,在这种情况下,请考虑提供一个runnable example来证明您的问题。这将减少混淆和更好的响应