¿Cómo agregar una fila en JTable?

Respuestas:

171

El TableModeldetrás de JTable maneja todos los datos detrás de la tabla. Para agregar y eliminar filas de una tabla, debe usar unDefaultTableModel

Para crear la tabla con este modelo:

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

Para agregar una fila:

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

También puede eliminar filas con este método.

Los detalles completos sobre DefaultTableModel se pueden encontrar aquí

Serplat
fuente
2
+1 Esta es una buena respuesta; sin embargo, tenga en cuenta que DefaultTableModel es sólo uno de muchos modelos. Sin embargo, es el más fácil de usar y recomendaría ceñirse a él a menos que tenga que usar otro.
chessofnerd
2
Al crear la tabla con su primera línea de código, aparece un error "El constructor DefaultTableModel (Object []) no está definido"
ThisClark
4
@ThisClark: Para ese constructor DefaultTableModel, también necesita agregar rowCount, como:JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}, 20));
Plenus Franckly
57

Utilizar:

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"});
Ponis dios mio
fuente
12

Para añadir fila a JTable, una de las maneras de hacerlo es:

1) Crea una tabla 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 agregar una fila:

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

Utilizar

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

obtener el modelo con DefaultTableModel modelName = (DefaultTableModel) JTabelName.getModel();

Crea un vector con Vector vectorName = new Vector();

agregue tantos row.addcomo comumns

agrega pronto solo agrégalo con modelName.addRow(Vector name);

user3452695
fuente
2

En aras de la integridad, primero asegúrese de tener la importación correcta para que pueda usar la addRowfunción:

import javax.swing.table.*;

Suponiendo que su jTable ya está creado, puede continuar y crear su propio método de agregar fila que aceptará los parámetros que necesita:

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