Evidentemente c'è dell'altro e presumibilmente è concentrato sull'uso dei LayoutManager (che qui non si capisce come sia).
Questo codice funziona alla perfezione:
codice:
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class TBHeader extends JFrame {
public TBHeader() {
Container c = getContentPane();
c.setLayout( new BorderLayout() );
String[] intestazione = {"Colonna1", "Colonna2"};
String[][] content = {{"Riga1, cella1", "Riga1, Cella2"},
{"Riga2, cella1", "Riga2, Cella2"},
{"Riga3, cella1", "Riga3, Cella2"}};
DefaultTableModel model = new DefaultTableModel(content, intestazione);
JTable table = new JTable( model );
JTableHeader header = table.getTableHeader();
header.setPreferredSize( new Dimension(0, 120) );
table.setRowHeight( 50 );
c.add(header, BorderLayout.NORTH);
c.add(table, BorderLayout.CENTER);
setSize(800, 600);
setTitle("Altezza TableHeader");
setDefaultCloseOperation( EXIT_ON_CLOSE );
setLocationRelativeTo( null );
setVisible( true );
}
public static void main(String[] args) {
TBHeader tbh = new TBHeader();
}
}
PS: se non ci sono particolari esigenze, solitamente si inserisce la JTable in uno JScrollPane, il quale si occupa da solo di visualizzare la JTableHeader, senza doverla aggiungere a parte.
Ciao.