在 JScrollPane 中显示 table 的第 header 列

Show column header of a table inside a JScrollPane

我通过搜索 JTextField 得到了这个 JTable
我的问题是 JTable 的 header 没有显示。

我创建了一个 JPanel searchPanel,其中放置了 JLabel "Search:"JTextField。然后我创建另一个 JPanel 来放置 JTablesearchPanel:

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);

最后我把 Jpanel panel 放在我的 JScrollPane():

this.setViewportView(panel);

如何显示列 header?

使用 setColumnHeaderView() 您可以设置滚动窗格的 header。

scrollPane.setColumnHeaderView(table.getTableHeader());

如果您不想将 header 设置为滚动窗格,那么您需要一个额外的面板来显示 table 及其 header。

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