Java 如何清除jTable的内容?
我有一个jTable,它有一个表模型,定义如下:Java 如何清除jTable的内容?,java,swing,jtable,Java,Swing,Jtable,我有一个jTable,它有一个表模型,定义如下: javax.swing.table.TableModel dataModel = new javax.swing.table.DefaultTableModel(data, columns); tblCompounds.setModel(dataModel); 有人知道我如何清除它的内容吗?就为了让它回到一张空桌子 如果要删除内容,但其单元格保持完整,则: public static void clearTable(final JT
javax.swing.table.TableModel dataModel =
new javax.swing.table.DefaultTableModel(data, columns);
tblCompounds.setModel(dataModel);
有人知道我如何清除它的内容吗?就为了让它回到一张空桌子 如果要删除内容,但其单元格保持完整,则:
public static void clearTable(final JTable table) {
for (int i = 0; i < table.getRowCount(); i++) {
for(int j = 0; j < table.getColumnCount(); j++) {
table.setValueAt("", i, j);
}
}
}
您有两个选择:
model.removeow(index)
以删除clear
方法//private TableModel dataModel;
private DefaultTableModel dataModel;
void setModel() {
Vector data = makeData();
Vector columns = makeColumns();
dataModel = new DefaultTableModel(data, columns);
table.setModel(dataModel);
}
void reset() {
dataModel.setRowCount(0);
}
i、 e.重置方法告诉模型有0行数据。模型将向表触发相应的数据更改事件,表将自行重建。另一个简单答案:
defaultTableModel.getDataVector().removeAllElements();
//清除Java JTable的内容
DefaultTableModel dm=(DefaultTableModel)JTable1.getModel();
对于(int i=0;i
我认为您的意思是要清除jTable中的所有单元格,使其与新的空白jTable一样。
例如,如果您的表包含40个RAW,则可以执行以下操作
DefaultTableModel model = (DefaultTableModel)this.jTable.getModel();
model.setRowCount(0);
model.setRowCount(40);
其中一个简单的方法是使用以下选项
dataModel.setRowCount(0);
dataModel是您希望清除其上内容的模型
但是,这不是最优的解决方案。对不起,我想将表返回到一种状态,在这种状态下,它只获得列标题,但其中没有数据(虚拟)-1用于第二部分:只要您知道模型的类型是DefaultTableModel,正确的调用方法是setRowCount(0)。+1(稍有更改),TableModel接口没有setRowCount()方法。该方法可在DefaultTableModel类中找到。我编辑您的示例代码是为了使用DefaultTableModel,而不是TableModel。-100如果我理解这个问题,这不是正确的答案。在这个问题中,我们的意思是,我们希望清空表中的单元格,并且希望有一个没有单元格的表!按照下面@Gebreigziabher-Abadi的答案作为最正确的答案,但更改
dm.setValueAt(“,i,j”)代码>带有dm.setValueAt(null,i,j)代码>不,这是完全错误的:永远不要更改模型底部的数据,而是使用模型APIDaultTableModel有一个明确的方法-只是名称不同:-)根据OP接受的答案是删除所有行清空单元格内容这一事实判断,似乎他/她不想实现:-)如果这是目标,将内容设置为空字符串不会清空它,并且可能会在您面前爆炸(如果模型需要其他类型):因此最好将内容设置为空。请添加一些注释
DefaultTableModel model = (DefaultTableModel)this.jTable.getModel();
model.setRowCount(0);
model.setRowCount(40);
public void deleteAllRows() {
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.setRowCount(0);
}
dataModel.setRowCount(0);