Wie füge ich eine Zeile in JTable hinzu?

94

Wissen Sie, wie ich eine neue Zeile zu einer hinzufügen kann jTable?

oneat
quelle

Antworten:

171

Die TableModelhinter der JTable stehende Hand behandelt alle Daten hinter der Tabelle. Um Zeilen zu einer Tabelle hinzuzufügen und daraus zu entfernen, müssen Sie a verwendenDefaultTableModel

So erstellen Sie die Tabelle mit diesem Modell:

JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}));

So fügen Sie eine Zeile hinzu:

DefaultTableModel model = (DefaultTableModel) table.getModel();
model.addRow(new Object[]{"Column 1", "Column 2", "Column 3"});

Sie können mit dieser Methode auch Zeilen entfernen.

Ausführliche Informationen zum DefaultTableModel finden Sie hier

Serplat
quelle
2
+1 Dies ist eine gute Antwort; Beachten Sie jedoch, dass das DefaultTableModel nur eines von vielen Modellen ist. Es ist jedoch am einfachsten zu verwenden und ich würde empfehlen, daran festzuhalten, es sei denn, Sie müssen ein anderes verwenden.
Schachofnerd
2
Beim Erstellen der Tabelle mit Ihrer ersten Codezeile wird die Fehlermeldung "Der Konstruktor DefaultTableModel (Object []) ist undefiniert"
angezeigt
4
@ThisClark: Für diesen DefaultTableModel-Konstruktor müssen Sie auch rowCount hinzufügen, wie:JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}, 20));
Plenus Franckly
57

Verwenden:

DefaultTableModel model = new DefaultTableModel(); 
JTable table = new JTable(model); 

// Create a couple of columns 
model.addColumn("Col1"); 
model.addColumn("Col2"); 

// Append a row 
model.addRow(new Object[]{"v1", "v2"});
OMG Ponys
quelle
12

So fügt Reihe zu JTable, eine der Möglichkeiten ist:

1) Erstellen Sie eine Tabelle mit DefaultTableModel:

        DefaultTableModel model = new DefaultTableModel();
        model.addColumn("Code");
        model.addColumn("Name");
        model.addColumn("Quantity");
        model.addColumn("Unit Price");
        model.addColumn("Price");
        JTable table = new JTable(model);

2) So fügen Sie eine Zeile hinzu:

        DefaultTableModel model = (DefaultTableModel) table.getModel();
        model.addRow(new Object[]{"Column 1", "Column 2", "Column 3","Column 4","Column 5"});
Muhammad Rehan Qadri
quelle
9

Verwenden

    DefaultTableModel model = (DefaultTableModel) MyJTable.getModel();

    Vector row = new Vector();
    row.add("Enter data to column 1");
    row.add("Enter data to column 2");
    row.add("Enter data to column 3");
    model.addRow(row);

Holen Sie sich das Modell mit DefaultTableModel modelName = (DefaultTableModel) JTabelName.getModel();

Erstellen Sie einen Vektor mit Vector vectorName = new Vector();

füge so viele row.addwie comumns hinzu

bald hinzufügen, einfach hinzufügen mit modelName.addRow(Vector name);

user3452695
quelle
2

Stellen Sie der Vollständigkeit halber zunächst sicher, dass Sie den richtigen Import haben, damit Sie die addRowFunktion verwenden können:

import javax.swing.table.*;

Angenommen, Ihre jTable ist bereits erstellt, können Sie fortfahren und eine eigene Methode zum Hinzufügen von Zeilen erstellen, die die von Ihnen benötigten Parameter akzeptiert:

public void yourAddRow(String str1, String str2, String str3){
  DefaultTableModel yourModel = (DefaultTableModel) yourJTable.getModel();
  yourModel.addRow(new Object[]{str1, str2, str3});
}
Joel Karunungan
quelle