我正在尝试从我的 abstractTableModel 中删除所有条目。只要我不删除剩下的最后一行,一切正常,但只要我删除这一行,我就会得到一个 ArrayOutOfBoundsException。我正在使用 DefaultRowSorter,这似乎是例外。
线程“AWT-EventQueue-0”java.lang.ArrayIndexOutOfBoundsException 中的异常:数组索引超出范围:在 graphics.tableModel.MyTableModel.getValueAt(MyTableModel.java) 的 java.util.Vector.get(Vector.java:694) 中的 0 :78) 在 graphics.tableModel.MyTableModel.getColumnClass(MyTableModel.java:90) 在 javax.swing.table.TableRowSorter.useToString(TableRowSorter.java:224) 在 javax.swing.DefaultRowSorter.updateUseToString(DefaultRowSorter.java:607)在 javax.swing.DefaultRowSorter.sort(DefaultRowSorter.java:556) 在 javax.swing.DefaultRowSorter.shouldOptimizeChange(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章)
我删除所有行的代码:
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(行[i]); }
tm.fireTableDataChanged();
感谢您的帮助