Java 如何清除JTable
如何使用Java清除JTable的内容?基本上,这取决于您用于JTable的TableModel。如果您使用的是Java 如何清除JTable,java,swing,Java,Swing,如何使用Java清除JTable的内容?基本上,这取决于您用于JTable的TableModel。如果您使用的是DefaultTableModel,则可以通过两种方式执行: DefaultTableModel dm = (DefaultTableModel)table.getModel(); dm.getDataVector().removeAllElements(); dm.fireTableDataChanged(); // notifies the JTable that the mode
DefaultTableModel
,则可以通过两种方式执行:
DefaultTableModel dm = (DefaultTableModel)table.getModel();
dm.getDataVector().removeAllElements();
dm.fireTableDataChanged(); // notifies the JTable that the model has changed
或
有关更多详细信息,请参阅的JavaDoc您必须从用于该表的
表格模型
中删除数据
如果使用DefaultTableModel
,只需将行数设置为零。这将删除行并触发TableModelEvent
,以更新GUI
JTable table;
…
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setRowCount(0);
JTable表;
…
DefaultTableModel=(DefaultTableModel)table.getModel();
model.setRowCount(0);
如果您使用的是其他
TableModel
,请查看文档。我必须得到一张没有列的干净表格。我做了以下工作:
jMyTable.setModel(new DefaultTableModel());
这是我找到的最快最简单的方法
while (tableModel.getRowCount()>0)
{
tableModel.removeRow(0);
}
这将清除表lickety split,并使其为新数据做好准备 我认为您的意思是要清除jTable中的所有单元格,使其与新的空白jTable一样。 例如,如果您的表是myTable,则可以执行以下操作
DefaultTableModel model = new DefaultTableModel();
myTable.setModel(model);
如果我们使用
tMOdel.setRowCount(0)代码>我们可以得到空表
DefaultTableModel tMOdel = (DefaultTableModel) jtableName.getModel();
tMOdel.setRowCount(0);
尝试以下操作:如果您更改了基础数据向量,请记住触发一个表事件-否则JTable将不知道它已经更改了…-1,这两个建议都是错误的。第一,出于上述原因。第二个将跳过行,因为在删除每一行时,变量i不断递增。如果要创建循环,则只需不断删除行0,直到不再有行为止。然而,卡洛斯发布了最简单的解决方案。卡米克尔,你是对的。为了解决这些问题,我更改了答案。但是Carlos的解决方案更容易实现。检查这个问题:Dupe of:只是在这里添加这个。。。我不得不调用table.revalidate()
在将行数设置为零后,为了立即看到更改,否则我直到单击JTable
@Jim Dingo才能看到更改,而无需revalidate()
对我来说:DefaultTableModel
在数据更改时通知视图-检查setNumRows(int)
的代码,如果行数减少,它将调用fireTableRowsDeleted
。快速有效的解决方案,但它也会删除标题。如果有一个不删除标题的选项,应该会更好。另一个帖子中有人建议将所有行逐个删除。这将使标题保留更多信息。不鼓励只编写代码和“试试这个”答案,因为它们不包含可搜索的内容,也不解释为什么有人应该“试试这个”。我们努力成为知识的源泉。
DefaultTableModel tMOdel = (DefaultTableModel) jtableName.getModel();
tMOdel.setRowCount(0);
((DefaultTableModel)jTable3.getModel()).setNumRows(0); // delet all table row