Ich habe eine jTable und es hat ein Tabellenmodell wie folgt definiert:
javax.swing.table.TableModel dataModel =
new javax.swing.table.DefaultTableModel(data, columns);
tblCompounds.setModel(dataModel);
Weiß jemand, wie ich den Inhalt löschen kann? Nur damit es zu einem leeren Tisch zurückkehrt?
Einfachster Weg:
//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);
}
ihre Rücksetzmethode weist das Modell an, 0 Datenzeilen zu haben. Das Modell löst die entsprechenden Datenänderungsereignisse für die Tabelle aus, die sich selbst neu aufbaut.
Wenn Sie den Inhalt entfernen möchten, die Zellen jedoch intakt bleiben, gilt Folgendes:
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);
}
}
}
OK, wenn Sie alle Zellen entfernen, aber die Kopfzeilen beibehalten möchten:
public static void deleteAllRows(final DefaultTableModel model) {
for( int i = model.getRowCount() - 1; i >= 0; i-- ) {
model.removeRow(i);
}
}
//To clear the Contents of Java JTable
DefaultTableModel dm = (DefaultTableModel) JTable1.getModel();
for (int i = 0; i < dm.getRowCount(); i++) {
for (int j = 0; j < dm.getColumnCount(); j++) {
dm.setValueAt("", i, j);
}
}
Sie haben mehrere Möglichkeiten:
new DefaultTableModel()
, aber denken Sie daran, alle Listener erneut anzuschließen.model.removeRow(index)
.clear
-Methode verfügbar.Ich denke, Sie meinten damit, dass Sie alle Zellen in der jTable löschen und es wie eine neue leere jTable machen wollen. Ein Beispiel: Wenn Ihre Tabelle 40 Rohdaten enthält, können Sie Folgendes tun.
DefaultTableModel model = (DefaultTableModel)this.jTable.getModel();
model.setRowCount(0);
model.setRowCount(40);
Eine der trivialen Methoden ist die Verwendung der folgenden Option.
dataModel.setRowCount(0);
datenmodell ist das Modell, für das Sie den Inhalt löschen möchten
Es ist jedoch keine optimale Lösung.