首页 > 技术文章 > Jtable 清空的问题

wwssgg 2021-02-24 17:17 原文

Swing工程中JTable清空

1、

//                DefaultTableModel model = (DefaultTableModel) table.getModel();
//                for (int i = model.getRowCount() - 1; i >= 0; i--) {
//                    model.removeRow(i);
//                } 

用这个方法是有问题的,因为是JTable    >> TableModel  >> TableData(Vector或String[])这样的映射关系,如果用上面的方法,如果数据增加或减少都不会通知TableModel ,就导致每次清数据就报数据越界异常ArrayIndexOutOfBoundsException

2、

 

如果直接清理数据是会通知上层的监听,改变模型

DefaultTableModel dtm = new ((DefaultTableModel) table.getModel());

 

dtm.getDataVector().clear();   //清除表格数据
dtm.fireTableDataChanged();//通知模型更新

table.updateUI();//刷新表格

3、

DefaultTableModel dtm = new ((DefaultTableModel) table.getModel());

dtm.setRowCount(0);

 

转自 https://www.cnblogs.com/lk-php/articles/4326713.html

推荐阅读