JTable y header
Hola!. ¿Cómo puedo hacer que una JTable muestre el encabezado que yo quiera?. Estoy usando un DefaultTableModel para crear el tamaño de la tabla que yo quiero, y luego poder modificarla.
El problema es que uso un array de Strings con el nombre del encabezado de cada columna para decirle cuántas columnas quiero y, aunque toma bien el valor, luego no aparece el encabezado de las columnas :'(.
Mi código es este:
Object[] nombres = {"A", "B", "C", "Total"};
DefaultTableModel dtm = new DefaultTableModel(nombres, 10);
jTable1 = new JTable(dtm);
jTable1.getColumnModel().getColumn(0).setPreferredWidth(120);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(80);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(70);
jTable1.getColumnModel().getColumn(3).setPreferredWidth(100);
Muchas gracias por la ayuda!!.
El problema es que uso un array de Strings con el nombre del encabezado de cada columna para decirle cuántas columnas quiero y, aunque toma bien el valor, luego no aparece el encabezado de las columnas :'(.
Mi código es este:
Object[] nombres = {"A", "B", "C", "Total"};
DefaultTableModel dtm = new DefaultTableModel(nombres, 10);
jTable1 = new JTable(dtm);
jTable1.getColumnModel().getColumn(0).setPreferredWidth(120);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(80);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(70);
jTable1.getColumnModel().getColumn(3).setPreferredWidth(100);
Muchas gracias por la ayuda!!.
Hola:
Si no consigues que funcione lo del scroll, puedes probar añadiendo la cabecera y la tabla por separado en un panel (con Layout = BorderLayout)
panel.add(tabla.getTableHeader(), BorderLayout.NORTH);
panel.add(tabla, BorderLayout.CENTER);
Espero que te sirva.
Saludos
Si no consigues que funcione lo del scroll, puedes probar añadiendo la cabecera y la tabla por separado en un panel (con Layout = BorderLayout)
panel.add(tabla.getTableHeader(), BorderLayout.NORTH);
panel.add(tabla, BorderLayout.CENTER);
Espero que te sirva.
Saludos
Usa este constructor:
public JTable ( Object InfoCel[][], Object NombreCol[] )
Hazlo de la siguiente manera:
Object InfoCel[][] =
{
{"Celda 1,1", "Celda 1,2", "Celda 1,3"},
{"Celda 2,1", "Celda 2,2", "Celda 2,3"}
};
Object columnNames[] =
{
"A", "B", "C", "Total"
};
JTable table = new JTable(rowData, columnNames);
public JTable ( Object InfoCel[][], Object NombreCol[] )
Hazlo de la siguiente manera:
Object InfoCel[][] =
{
{"Celda 1,1", "Celda 1,2", "Celda 1,3"},
{"Celda 2,1", "Celda 2,2", "Celda 2,3"}
};
Object columnNames[] =
{
"A", "B", "C", "Total"
};
JTable table = new JTable(rowData, columnNames);
prueba a añadir jTable a traves de un JScrollPane, eso es, que en lugar de add(jTable1) usa add(new JScrollPane(jTable1))
Ná, sigue sin funcionar... :(. Ya el propio JPanel y el JFrame en el que esta se redimensionan si hago cambios en el diseño de la JTable.
Quizas una solucion es definir una clase heredada de AbstractTableModel, pero no sé cómo se almacenan ahà los valores que quieres mostrar en la JTable.
Gracias!!!.
Quizas una solucion es definir una clase heredada de AbstractTableModel, pero no sé cómo se almacenan ahà los valores que quieres mostrar en la JTable.
Gracias!!!.
