2016-06-07 38 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工作版本不同。