JTableHeaderを非表示にする
Total: 13672
, Today: 3
, Yesterday: 3
Posted by aterai at
Last-modified:
概要
JTable
でJTableHeader
を表示するかどうかを動的に切り替えます。
Screenshot
Advertisement
サンプルコード
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, Kotlin解説
上記のサンプルでは、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(); } });