2011-10-03 102 views
-1

在此代碼中,當我從列表中間選擇一個元素並刪除時,所選元素下的元素也將從「查看」中刪除。但它們存在於數據庫中,並在應用程序運行時再次出現。請幫助我解決這個錯誤。謝謝。從列表中刪除

DeleteController delController = new DeleteController(); 
delController.deleteInfo(dbId); 
this.jList1 = list; 
AbstractListModel model = (AbstractListModel) jList1.getModel(); 
int numberElements = model.getSize(); 
final String[] allElements = new String[numberElements + 1]; 
for (int i = 0; i < numberElements - 1; i++) { 
    String val = (String) model.getElementAt(i); 
    if (!dbId.equals(val)) { 
     allElements[i] = (String) model.getElementAt(i); 
    } 
} 
jList1.setModel(new javax.swing.AbstractListModel() { 

    String[] strings = allElements; 

    public int getSize() { 
     return strings.length; 
    } 

    public Object getElementAt(int i) { 
     return strings[i]; 
    } 
}); 
+0

爲什麼你不顯示實際執行刪除的代碼。更好:發佈SSCCE(http://pscode.org/sscce.html)! – jfpoilpret

回答

6

使用DefaultListModel。它有removeElementAt()方法

+0

+1,另外,您可以閱讀[如何使用列表](http://download.oracle.com/javase/tutorial/uiswing/components/list.html)上的Swing教程部分。它有一個如何動態添加/刪除DefaultListModel項目的工作示例。 – camickr