Swing/RemoveTableHeader のバックアップの現在との差分(No.1)
TITLE:JTableHeaderを非表示にする
Posted by terai at 2010-11-01
JTableHeaderを非表示にする
JTableHeaderの表示、非表示を切り替えます。-
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
を表示するかどうかを動的に切り替えます。
- &jnlp;
- &jar;
- &zip;
Screenshot
Advertisement
#screenshot
サンプルコード
#spanend
#spandel
final JScrollPane scrollPane = new JScrollPane(table);
#spanend
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
#spanadd
JScrollPane scrollPane = new JScrollPane(table);
#spanend
#spanadd
// scrollPane.setColumnHeader(new JViewport()); // Empty JViewport
#spanend
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());
JCheckBox cb = (JCheckBox) e.getSource();
// table.getTableHeader().setVisible(cb.isSelected());
scrollPane.getColumnHeader().setVisible(cb.isSelected());
scrollPane.revalidate();
}
});
解説
上記のサンプルでは、tble.setTableHeader(null)や、table.setTableHeader(new JTableHeader(table.getColumnModel()))は使用せず、JTableを配置したJScrollPaneのJScrollPane#getColumnHeader().setVisible(boolean)メソッドを使って、JTableHeaderの表示、非表示を変更しています。解説
上記のサンプルでは、JTable
を配置したJScrollPane
のJScrollPane#getColumnHeader().setVisible(boolean)
メソッドを使ってJTableHeader
の表示、非表示を変更しています。
コメント
-
table.setTableHeader(null)
でヘッダを削除、table.setTableHeader(new JTableHeader(table.getColumnModel()))
で復元する方法もある - 以下のようにサイズ
0
のColumnHeader
を設定して非表示に見せかけることも可能#spanend #spanadd scroll.setColumnHeader(new JViewport() { #spanend @Override public Dimension getPreferredSize() { return new Dimension(); } #spanadd }); #spanend #spanadd