2011-05-18 26 views
26

encabezado de columna no visible en mi JTable He creado un JPanel y he agregado la JTable al JPanel.JTable de encabezado de columna no visible

Object rowData[][] = { { "Row1-Column1", "Row1-Column2", "Row1-Column3"}, 
       { "Row2-Column1", "Row2-Column2", "Row2-Column3"} }; 
      Object columnNames[] = { "Column One", "Column Two", "Column Three"}; 
      JTable jTable = new JTable(rowData, columnNames); 
+5

creo que usted necesita para ponerlo dentro de un JScrollPane de los nombres de columna para mostrar ... –

+0

wo rks al agregar JTable a JScrollPane – Lalchand

+0

No se olvide de marcar la respuesta de Amir como 'correcta'. @Dilum: ¿Por qué fue ese un comentario en lugar de una respuesta? –

Respuesta

49

El API para JTable afirma:

"Tenga en cuenta que si desea utilizar un JTable en una vista independiente (fuera de un JScrollPane) y desea que el encabezado aparece, lo puede conseguir usando getTableHeader() y mostrarlo por separado. "

O simplemente agregar la tabla a un panel de desplazamiento, y añadir su panel de desplazamiento al panel ...

14

continuación se explica cómo añadir una cabecera a un JTable sin utilizar un JScrollPane:

int rows = 21; 
int cols = 3; 
JTable table = new JTable(rows, cols); 
JTableHeader header = table.getTableHeader(); 
JPanel panel = new JPanel(); 
panel.setLayout(new BorderLayout()); 
panel.add(header, BorderLayout.NORTH); 
panel.add(table, BorderLayout.CENTER); 
2

puede agregar siguiente código en el código

DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); 
renderer.setPreferredSize(new Dimension(0, 0)); 
table.getTableHeader().setDefaultRenderer(renderer); 
+1

.. para llegar a qué ...? – kleopatra

+0

eliminará el encabezado predeterminado de Jtable .. de manera predeterminada se mostrará con A, B, C como encabezado ... podemos eliminarlos mediante el uso del código anterior. – jcrshankar

Cuestiones relacionadas