Jak dodać wiersz w JTable?

95

Czy wiesz, jak mogę dodać nowy wiersz do a jTable?

oneat
źródło

Odpowiedzi:

172

TableModelZa JTable obsługuje wszystkie dane za stołem. Aby dodawać i usuwać wiersze z tabeli, musisz użyć plikuDefaultTableModel

Aby utworzyć tabelę za pomocą tego modelu:

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

Aby dodać wiersz:

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

Za pomocą tej metody możesz również usuwać wiersze.

Pełne szczegóły dotyczące DefaultTableModel można znaleźć tutaj

Serplat
źródło
2
+1 To jest dobra odpowiedź; należy jednak pamiętać, że DefaultTableModel jest tylko jednym z wielu modeli. Jest jednak najłatwiejszy w użyciu i zalecałbym trzymanie się go, chyba że musisz użyć innego.
chessofnerd
2
Podczas tworzenia tabeli z pierwszym wierszem kodu
pojawia
4
@ThisClark: Dla tego konstruktora DefaultTableModel musisz również dodać rowCount, na przykład:JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}, 20));
Plenus Franckly
57

Posługiwać się:

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"});
Kucyki OMG
źródło
12

Aby dodać wiersz do JTable, jednym ze sposobów jest:

1) Utwórz tabelę przy użyciu 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) Aby dodać wiersz:

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

Posługiwać się

    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);

pobierz model z DefaultTableModel modelName = (DefaultTableModel) JTabelName.getModel();

Utwórz wektor za pomocą Vector vectorName = new Vector();

dodaj tyle, row.addile kolumn

dodaj wkrótce po prostu dodaj za pomocą modelName.addRow(Vector name);

user3452695
źródło
1

Ze względu na kompletność najpierw upewnij się, że masz poprawny import, aby móc użyć addRowfunkcji:

import javax.swing.table.*;

Zakładając, że Twoja tabela jTable została już utworzona, możesz kontynuować i utworzyć własną metodę dodawania wierszy, która zaakceptuje potrzebne parametry:

public void yourAddRow(String str1, String str2, String str3){
  DefaultTableModel yourModel = (DefaultTableModel) yourJTable.getModel();
  yourModel.addRow(new Object[]{str1, str2, str3});
}
Joel Karunungan
źródło