Swing/TableHeaderHeight のバックアップ(No.9)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TableHeaderHeight へ行く。
- 1 (2012-05-30 (水) 14:30:06)
- 2 (2012-06-11 (月) 19:57:26)
- 3 (2012-12-11 (火) 20:47:38)
- 4 (2014-09-21 (日) 04:14:53)
- 5 (2014-10-25 (土) 23:42:30)
- 6 (2014-11-14 (金) 02:47:00)
- 7 (2014-11-26 (水) 02:28:53)
- 8 (2015-03-16 (月) 20:28:27)
- 9 (2016-05-27 (金) 15:30:47)
- 10 (2016-05-29 (日) 23:34:22)
- 11 (2017-06-06 (火) 14:32:56)
- 12 (2018-02-24 (土) 19:51:30)
- 13 (2018-05-24 (木) 16:20:39)
- 14 (2020-05-06 (水) 18:53:51)
- 15 (2021-11-03 (水) 02:24:16)
- 16 (2022-08-05 (金) 15:46:40)
- 17 (2022-08-20 (土) 22:15:25)
- title: JTableHeaderの高さを変更
tags: [JTableHeader, JTable, JScrollPane, JViewport]
author: aterai
pubdate: 2012-05-28T14:51:47+09:00
description: 内部の文字サイズなどはそのままで、JTableHeaderの高さだけを変更する方法をテストします。
hreflang:
href: http://java-swing-tips.blogspot.com/2012/06/height-of-jtableheader.html lang: en
概要
内部の文字サイズなどはそのままで、JTableHeader
の高さだけを変更する方法をテストします。
Screenshot
Advertisement
サンプルコード
JScrollPane scroll = new JScrollPane(table);
scroll.setColumnHeader(new JViewport() {
@Override public Dimension getPreferredSize() {
Dimension d = super.getPreferredSize();
d.height = 32;
return d;
}
});
View in GitHub: Java, Kotlin解説
- 上
JTableHeader
にnull
(デフォルト)以外のサイズをsetPreferredSize(...)
で設定JTable.AUTO_RESIZE_OFF
の場合、設定されたこのサイズが列の追加や列幅の変更で更新されないため、ヘッダの描画が不正になるJTable.AUTO_RESIZE_OFF
以外の場合は、setPreferredSize(...)
で設定された幅は無視されて、JTable
の幅が使用される
- 下
JViewport#getPreferredSize()
もしくは、JTableHeader#getPreferredSize()
をオーバーライドして、JTableHeader
の高さを変更table.setTableHeader(new JTableHeader(table.getColumnModel()) { @Override public Dimension getPreferredSize() { Dimension d = super.getPreferredSize(); d.height = 32; return d; } });
viewport.setPreferredSize(...)
と設定しても可?JTableHeader#getHeight()
をオーバーライドすると、ヘッダ文字列などの描画だけ変更されるgetHeight()
はJTableHeader#getHeaderRect()
で使用されているため
参考リンク
- JTableのJTalbeHeaderの高さを変更して列幅の合計が1200ピクセルを超えて横スクロールするとバグった。 - kensir0uのしくみ
- このバグ?の状態を適切に示す良いサンプルコードがあります。
- #JDK-4473075 JTable header rendering problem (after setting preferred size) - Java Bug System