2008-11-17 43 views
13

Tenemos un proyecto simple donde leemos datos de un socket y queremos llenar una tabla con los datos que vienen, pero no podemos encontrar una manera de agregar filas a un objeto JTable creado aún, solo podemos encontrar cómo agregar filas en el momento de la creación de la tabla.Agregar filas a una JTable

¿Es posible agregar filas dinámicamente a JTable, o hay un mejor objeto alternativo para tratar esta forma de mostrar datos?

EDIT: Muchas gracias por sus respuestas.

Los tres se ven muy prometedores, pero tengo que elegir solo uno y creo que el mejor es el de Guillaume.

Respuesta

12

Debe crear un TableModel personalizado. Un JTable no almacena las filas, siempre lo delega en un TableModel. Para ayudarlo a implementarlo, debe hacer uso de AbstractTableModel. No olvide llamar al fireTableRowsInserted() cada vez que agregue filas. Para obtener mejores resultados si agrega muchas filas, intente lotar las actualizaciones y agregue muchas filas a la vez.

6

Una vez que comience a agregar y eliminar dinámicamente elementos de una JTable, realmente necesita comenzar a usar un modelo de tabla.

Consulte el Java Tutorial para obtener más información.

11

Si se utiliza el modelo de tabla predeterminado para un JTable entonces se puede añadir filas con el siguiente código

if (dest+1 < table.getRowCount()-1) 
    ((DefaultTableModel) table.getModel()).insertRow(dest+1, getValuesForNewRow()); 
    else 
    ((DefaultTableModel) table.getModel()).addRow(getValuesForNewRow()); 
+7

Lo mejor es simplemente mantener la suspensión de la DefaultTableModel antes de pasarlo al constructor de JTable. Entonces no es necesario tocar la JTable o hacer ningún lanzamiento. –

Cuestiones relacionadas