Como adicionar linha no JTable?

94

Você sabe como posso adicionar uma nova linha a um jTable?

uma vez
fonte

Respostas:

171

O TableModelpor trás da JTable lida com todos os dados por trás da tabela. Para adicionar e remover linhas de uma tabela, você precisa usar umDefaultTableModel

Para criar a tabela com este modelo:

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

Para adicionar uma linha:

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

Você também pode remover linhas com este método.

Detalhes completos sobre o DefaultTableModel podem ser encontrados aqui

Serplat
fonte
2
+1 Esta é uma boa resposta; no entanto, observe que DefaultTableModel é apenas um de muitos modelos. No entanto, é o mais fácil de usar e eu recomendo mantê-lo, a menos que você precise usar outro.
chessofnerd
2
Ao criar a tabela com sua primeira linha de código, recebo um erro "O construtor DefaultTableModel (Object []) é indefinido"
ThisClark
4
@ThisClark: Para esse construtor DefaultTableModel, você também precisa adicionar rowCount, como:JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}, 20));
Plenus Franckly
57

Usar:

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"});
Pôneis OMG
fonte
12

Para adicionar uma linha a JTable, uma das maneiras é:

1) Crie uma tabela usando 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) Para adicionar linha:

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

Usar

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

pegue o modelo com DefaultTableModel modelName = (DefaultTableModel) JTabelName.getModel();

Crie um vetor com Vector vectorName = new Vector();

adicione tantos row.addcomo comumns

adicione logo apenas adicione com modelName.addRow(Vector name);

user3452695
fonte
2

Para fins de integridade, primeiro certifique-se de ter a importação correta para poder usar a addRowfunção:

import javax.swing.table.*;

Supondo que seu jTable já esteja criado, você pode prosseguir e criar seu próprio método de adição de linha que aceitará os parâmetros de que você precisa:

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