2010-03-27 39 views
12

¿Alguien me puede decir cómo crear una tabla sin un encabezado de tabla?JTable sin encabezado

Estoy haciendo sudoku y quiero crear una tabla sin el encabezado de tabla en Java. ¿Es posible?

+0

No añadir nombres de columna ... utilizar cualquier otro constructor ... o por defecto? Espero que esté hablando de JTable .. – RubyDubee

+2

@saurabh: 3133t hablar no es bienvenido aquí. Arreglé tu publicación pero la próxima vez me abstengo de usar "any1", "plz thx" y varios "??". ¿Puedo comer cheezburger? – SyntaxT3rr0r

+2

¿qué tabla? ¿necesita sillas también? lol –

Respuesta

25

No creo que usted quiere que su Sudoku para desplazarse, por lo que la forma más fácil debería ser no para poner su tabla en un JScrollPane, que se encarga de mostrar el encabezado:

alt text


la otra forma es llamar

table.setTableHeader(null); 
+0

Para mí, ninguna solución tiene ningún efecto en el encabezado. Incluso he intentado 'table.getTableHeader.setVisible (false)' pero todavía tengo una mancha gris en blanco donde estaría el encabezado. Sé que esta es una publicación anterior; ha cambiado la API, o me falta algo? –

+0

Parece que te falta algo, solo intenté las dos formas sugeridas y funcionan. Si se configura el TableHeader como invisible, deja una mancha gris ya que el diseño no cambia. Si no puede resolverlo, no dude en hacer otra pregunta con un pequeño ejemplo para reproducir su problema y una captura de pantalla del resultado. –

1

Así que el truco parece ser que estableció por primera vez una encabezado utilizando el constructor DefaultTableModel pero luego para llamar a setTableHeader (null);

enter image description here

Aquí hay un código de demostración:

package net.raysforge.visual.demo; 

import java.awt.BorderLayout; 
import java.awt.EventQueue; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.table.DefaultTableModel; 
public class JTableAndGBC { 

    private String[] columnNames = {"Source", "Hit", "Last", "Ur_Diff"}; 
    private JTable table; 
    private Object[][] data = {{"Swing Timer", 2.99, 5, 1.01}, 
     {"Swing Worker", 7.10, 5, 1.010}, {"TableModelListener", 25.05, 5, 1.01}}; 
    private DefaultTableModel model = new DefaultTableModel(data, columnNames); 

    public JTableAndGBC() { 
     JPanel panel = new JPanel(new GridBagLayout()); 
     table = new JTable(model); 
     GridBagConstraints gbc = new GridBagConstraints(); 
     gbc.weightx = 1.0; 
     gbc.fill = GridBagConstraints.HORIZONTAL; 
     JScrollPane pane = new JScrollPane(table); 
     table.setPreferredScrollableViewportSize(table.getPreferredSize()); 
     table.setTableHeader(null); 
     panel.add(pane, gbc); 
     JFrame frame = new JFrame(); 
     frame.add(panel, BorderLayout.CENTER); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static void main(String args[]) throws Exception { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       new JTableAndGBC(); 
      } 
     }); 
    } 
} 
3

Cualquier persona que tenga problemas con los métodos sugeridos, pruebe lo siguiente:

jTable.getTableHeader().setUI(null); 

Esto se prueba con Java 8.