0

我需要从JTable. 我写了这样的代码:

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

while(row>=x){

    dtm.removeRow(x);
    x++;

}

但它会产生一个错误,例如:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 
  24 >= 24
4

2 回答 2

6

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

dtm.setRowCount(0);

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

于 2013-06-29T16:12:56.187 回答
0

你可以试试这个:

while(row>x){
    dtm.removeRow(x);
    x++;
}

更新

    DefaultTableModel model = new DefaultTableModel(); 
    JTable table = new JTable(model); 

    model.addColumn("Col1"); 
    model.addColumn("Col2"); 
    model.addRow(new Object[]{"1", "2"});
    model.addRow(new Object[]{"1", "2"});

    table.setModel(model);

    for(int index = 0; index<table.getRowCount();)
    {
        model.removeRow(index);
    }

安装了Java就更容易了。抱歉回答错误。

于 2013-06-29T16:10:00.597 回答