2016-06-07 80 views
0

我遇到了从我的列表中删除旧元素的问题。我尽可能使用方法clear()removeAllElements()removeAll(),但我似乎无法清除它们。JList不清除

为了帮助您了解情况更好一点:

d1是包含在我们的程序中的所有可用设备的ArrayList。使用DefaultListModel

我们希望这样做的目的是,当用户从正确的文本文件加载产品时,如果他再次这样做了,我们的gui中列出的产品将被原始文本文件中的产品覆盖。但是我们最终的产品有重复的,即使我们使用了两个d1ArrayList)的clear()方法和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)); 
     } 

    } 
} 

回答

1

如果未清除的名单,我建议你没有适当的参考正在使用由JList当你调用clear()方法DefaultListModel

开始通过从How to Use Lists了Swing教程中的阅读部分。

下载ListDemo代码并使用它。更改“火灾”按钮以使用DefaultListModel上的clear()方法向您自己证明您是需要做的。

一旦你看到代码的工作,那么你弄清楚你的代码是如何从ListDemo工作版本不同。