JTableHeaderを非表示にする
Total: 14439, Today: 1, Yesterday: 2
Posted by aterai at
Last-modified:
Summary
JTableでJTableHeaderを表示するかどうかを動的に切り替えます。
Screenshot

Advertisement
Source Code Examples
JScrollPane scrollPane = new JScrollPane(table);
// scrollPane.setColumnHeader(new JViewport()); // Empty JViewport
JCheckBox check = new JCheckBox("JTableHeader visible: ", true);
check.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) {
JCheckBox cb = (JCheckBox) e.getSource();
// table.getTableHeader().setVisible(cb.isSelected());
scrollPane.getColumnHeader().setVisible(cb.isSelected());
scrollPane.revalidate();
}
});
View in GitHub: Java, KotlinDescription
上記のサンプルでは、JTableを配置したJScrollPaneのJScrollPane#getColumnHeader().setVisible(boolean)メソッドを使ってJTableHeaderの表示、非表示を変更しています。
table.setTableHeader(null)でヘッダを削除、table.setTableHeader(new JTableHeader(table.getColumnModel()))で復元する方法もある- 以下のようにサイズ
0のColumnHeaderを設定して非表示に見せかけることも可能scroll.setColumnHeader(new JViewport() { @Override public Dimension getPreferredSize() { return new Dimension(); } });