Jtable 清空的問題

個問題糾結了很久很久,目前網上好像還沒有人遇到過像我這樣比較繁雜的問題,今天終於搞定了,分享給大家看一看

情況是這樣的,我做一個關於SWING的工程,當然會用到大量的表格最早清空表格是這樣寫的

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

用這個方法是有問題的,因爲是JTable    >> TableModel  >> TableData(Vector或String[])這樣的映射關係,如果用上面的方法,如果數據增加或減少都不會通知TableModel ,就導致每次清數據就報數據越界異常ArrayIndexOutOfBoundsException。

 

如果直接清理數據是會通知上層的監聽,改變模型

((DefaultTableModel) table.getModel()).getDataVector().clear();   //清除表格數據
((DefaultTableModel) table.getModel()).fireTableDataChanged();//通知模型更新

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

發佈了0 篇原創文章 · 獲贊 7 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章