因此,我有一个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");
}发布于 2014-11-01 09:05:14
首先,不要调用list.removeAll,虽然它不太可能做任何事情,但以这种方式处理组件是不明智的。
最简单的解决方案就是替换JList的ListModel……
list.setModel(new DefaultListModel());或者,在你的情况下,像这样的东西。
model = new DefaultListModel();
list.setModel(model);
model.addElement("new Data");如果这不起作用,那么您可能是在隐藏您的变量,在这种情况下,请考虑提供一个runnable example来说明您的问题。这将导致更少的混乱和更好的响应
https://stackoverflow.com/questions/26685326
复制相似问题