2012-02-03 39 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); 
     } 
    } 
}