我想從我的abstractTableModel中刪除所有的entrys。只要我不刪除剩餘的最後一行,一切正常,但只要我刪除這一行,就會得到一個ArrayOutOfBoundsException。我正在使用DefaultRowSorter,這似乎是異常。JTable刪除所有行異常
在異常線程 「AWT-EventQueue的-0」 java.lang.ArrayIndexOutOfBoundsException:數組索引超出範圍:0 在java.util.Vector.get(Vector.java:694) 在graphics.tableModel .MyTableModel.getValueAt(MyTableModel.java:78) 在graphics.tableModel.MyTableModel.getColumnClass(MyTableModel.java:90) 在javax.swing.table.TableRowSorter.useToString(TableRowSorter.java:224) 在javax.swing中(DefaultRowSorter.java:1008)(默認)在javax.swing.DefaultRowSorter.rowsDeleted(DefaultRowSorter.java:866) 在javax.swing.JTable.notifySorter(JTable.java:4262) 在javax.swing.JTable.sortedTableChanged(JTable.java:4106) 在javax.swing.JTable.tableChanged(JTable.java:4383) 在javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:280)
我的代碼刪除所有行:
public void deleteAll() {
int size = data.size()-1;
data.clear();
this.fireTableRowsDeleted(0, size);
}
只需刪除最後一個現有行就會發生同樣的情況。
public void deleteRow(int row) {
data.remove(row);
}
我打電話deleteRow方式:
for (int i = rows.length - 1; i >=0; i--) {
tm.deleteRow(行[1]); }
tm.fireTableDataChanged();
感謝您的幫助
非常感謝。這是做的竅門:) – Dimitri 2010-05-03 07:45:27