2016-04-09 8 views
1

Ich habe diese JTable mit der Suche JTextField: enter image description here
Mein Problem ist, dass der Header des JTable ist nicht gezeigt.in einem JScrollPane

Ich erstelle eine JPanel searchPanel, wo ich eine JLabel "Search:" und die JTextField setzen. Dann erstelle ich eine andere JPanel die JTable zu setzen und die searchPanel:

JTable table = new JTable(); 
JTextField search = new JTextField(); 
JPanel searchPanel = new JPanel(new BorderLayout()); 
JLabel label = new JLabel("Search:"); 

searchPanel.add(label,BorderLayout.NORTH); 
searchPanel.add(search,BorderLayout.CENTER); 

JPanel panel = new JPanel(new BorderLayout()); 
panel.add(searchPanel,BorderLayout.NORTH); 
panel.add(table, BorderLayout.CENTER); 

Am Ende ich die Jpanel panel setzte in meinem JScrollPane():

this.setViewportView(panel); 

Was kann ich tun, um die Spaltenüberschrift zu zeigen?

+0

den Ausschnitt aus der Swing-Tutorial Machen Sie [Wie ScrollPanes verwenden] (http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html) für ein funktionierendes Beispiel. Halten Sie den Tutorial-Link für Swing-Grundlagen griffbereit. – camickr

Antwort

2

Mit setColumnHeaderView() können Sie die Kopfzeile Ihres Bildlaufbereichs festlegen.

scrollPane.setColumnHeaderView(table.getTableHeader()); 

Und wenn Sie nicht Header festlegen wollen, scrollpane dann müssen Sie eine zusätzliche Platte für Tabelle mit Kopfzeile.

JPanel tablePanel =new JPanel(new BorderLayout()); 
tablePanel.add(table.getTableHeader(), BorderLayout.NORTH); 
tablePanel.add(table); 
+0

Vielen Dank, es funktioniert perfekt! – DistribuzioneGaussiana