2012-02-03 67 views
2

我在Netbeans編程,我在一個框架中有一個jTable。如何清除JTable中的數據?

其中我加載佔用大量行的數據,但後來我加載了另一個有很少行的表。

而當我運行它,並加載第二個表時,第一個表中的額外行仍然出現在那裏。我想看看第二張桌子。

我已經嘗試過了jTable.removeAll();

+5

'removelAll()'從容器中刪除所有的部件和具有無關的JTable,它的數據。解決方案是通過'getModel()'獲取表的TableModel並從中清除數據,或者給JTable一個新的TableModel。但首先,請閱讀[JTable教程](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html)。這裏都有解釋,你的問題表明你還沒有完成這個基本步驟。您還需要查看JTable API以及用於您的JTable的模型DefaultTableModel。 – 2012-02-03 21:22:08

+0

非常好,非常感謝! – 2012-02-03 22:18:42

+0

不客氣! – 2012-02-03 22:19:25

回答

3

JTable使用模型/視圖/控制器方法,這意味着JTable類是既視圖和控制器,所以你需要使用JTable.setModel(來替換爲TableModel newModel)或通過使用JTable.getModel()清除TableModel並以這種方式清除模型。

請參閱關於使用JTable Tutorials中的表格的教程。

+1

另請參見[* Swing架構概述*](http://java.sun.com/products/jfc/ TSC /用品/建築/)。 – trashgod 2012-02-04 02:41:50

0

你的問題的最佳解決方案是

private void ClearButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    DefaultTableModel model = (DefaultTableModel)UR_TABLEVARIABLENAME.getModel(); 

    while (model.getRowCount() > 0){ 
     for (int i = 0; i < model.getRowCount(); ++i){ 
      model.removeRow(i); 
     } 
    } 
}