JTable不会删除行

use*_*322 0 java arrays swing jtable indexoutofboundsexception

我需要从中删除行JTable.我写了这样的代码:

DefaultTableModel dtm = (DefaultTableModel) jTable1.getModel();
int x = 0;
int row = dtm.getRowCount();

while(row>=x){

    dtm.removeRow(x);
    x++;

}
Run Code Online (Sandbox Code Playgroud)

但它会产生错误,例如:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 
  24 >= 24
Run Code Online (Sandbox Code Playgroud)

cam*_*ckr 6

一个更简单的解决方案是使用:

dtm.setRowCount(0);
Run Code Online (Sandbox Code Playgroud)

这也更有效,因为在删除所有行之后,表只需要重绘一次.

  • @Marco不需要那个.该模型触发了由`JTable`拾取的必要事件 (2认同)