在 JScrollPane 中显示 table 的第 header 列
Show column header of a table inside a JScrollPane
我通过搜索 JTextField
得到了这个 JTable
:
我的问题是 JTable
的 header 没有显示。
我创建了一个 JPanel searchPanel
,其中放置了 JLabel "Search:"
和 JTextField
。然后我创建另一个 JPanel
来放置 JTable
和 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);
最后我把 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);
我通过搜索 JTextField
得到了这个 JTable
:
我的问题是 JTable
的 header 没有显示。
我创建了一个 JPanel searchPanel
,其中放置了 JLabel "Search:"
和 JTextField
。然后我创建另一个 JPanel
来放置 JTable
和 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);
最后我把 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);