如何清除jTable的内容?

tom*_*tom 16 java swing jtable

我有一个jTable,它有一个像这样定义的表模型:

javax.swing.table.TableModel dataModel = 
     new javax.swing.table.DefaultTableModel(data, columns);
tblCompounds.setModel(dataModel);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何清除其内容?就这样它返回一个空表?

loc*_*cka 32

最简单的方法:

//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);
}
Run Code Online (Sandbox Code Playgroud)

即你的重置方法告诉模型有0行数据模型会将相应的数据更改事件激发到将重建自身的表.


eee*_*eee 10

如果您要删除内容但其单元格保持不变,则:

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);
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

好的,如果你的意思是删除所有单元格但保持其标题:

public static void deleteAllRows(final DefaultTableModel model) {
    for( int i = model.getRowCount() - 1; i >= 0; i-- ) {
        model.removeRow(i);
    }
}
Run Code Online (Sandbox Code Playgroud)