Swing/RemoveTableHeader のバックアップ(No.12)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/RemoveTableHeader へ行く。
- 1 (2010-11-03 (水) 15:12:07)
- 2 (2012-12-25 (火) 05:13:16)
- 3 (2014-12-10 (水) 17:46:50)
- 4 (2015-02-18 (水) 15:05:56)
- 5 (2016-03-31 (木) 17:48:06)
- 6 (2016-06-24 (金) 19:22:45)
- 7 (2017-09-22 (金) 08:33:05)
- 8 (2017-10-02 (月) 19:14:28)
- 9 (2018-02-24 (土) 19:51:30)
- 10 (2019-02-21 (木) 14:42:42)
- 11 (2020-12-09 (水) 01:31:54)
- 12 (2023-04-16 (日) 03:51:48)
- 13 (2024-02-09 (金) 15:01:24)
- category: swing
folder: RemoveTableHeader
title: JTableHeaderを非表示にする
tags: [JTable, JTableHeader, JScrollPane]
author: aterai
pubdate: 2010-11-01T15:50:29+09:00
description: JTableでJTableHeaderを表示するかどうかを、動的に切り替えます。
image:
hreflang:
href: https://java-swing-tips.blogspot.com/2016/03/how-to-hide-jtableheader.html lang: en
概要
JTable
でJTableHeader
を表示するかどうかを、動的に切り替えます。
Screenshot
Advertisement
サンプルコード
final JScrollPane scrollPane = new JScrollPane(table);
// scrollPane.setColumnHeader(new JViewport()); // Dummy 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();
}
});