Swing/TableHeaderHeight のバックアップ差分(No.4)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - 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の高さを変更 #navi(../) RIGHT:Posted by &author(aterai); at 2012-05-28 *JTableHeaderの高さを変更 [#i0975169] JTableHeaderの高さを変更します。 #tags(JTableHeader, JTable, JScrollPane, JViewport) #author(aterai) #pubdate(2012-05-28T14:51:47+09:00) * 概要 [#i0975169] `JTableHeader`の高さを変更します。 -&jnlp; -&jar; -&zip; #download(https://lh4.googleusercontent.com/-l20IOO5wKSo/T8MIf7FVUwI/AAAAAAAABNM/9BNN63T96Fo/s800/TableHeaderHeight.png) //#screenshot #ref(https://lh4.googleusercontent.com/-l20IOO5wKSo/T8MIf7FVUwI/AAAAAAAABNM/9BNN63T96Fo/s800/TableHeaderHeight.png) **サンプルコード [#zb516453] * サンプルコード [#zb516453] #code(link){{ JScrollPane scroll = new JScrollPane(table); scroll.setColumnHeader(new JViewport() { @Override public Dimension getPreferredSize() { Dimension d = super.getPreferredSize(); d.height = 32; return d; } }); }} **解説 [#aacfefbf] * 解説 [#aacfefbf] - 上 -- JTableHeaderにnull(デフォルト)以外のサイズをsetPreferredSize(...)で設定 -- JTable.AUTO_RESIZE_OFFの場合、設定されたこのサイズが列の追加や列幅の変更で更新されない(仕様?)ため、ヘッダの描画が不正になる -- `JTableHeader`に`null`(デフォルト)以外のサイズを`setPreferredSize(...)`で設定 -- `JTable.AUTO_RESIZE_OFF`の場合、設定されたこのサイズが列の追加や列幅の変更で更新されない(仕様?)ため、ヘッダの描画が不正になる --- [http://d.hatena.ne.jp/kensir0u/20090416/1239898154 JTableのJTalbeHeaderの高さを変更して列幅の合計が1200ピクセルを超えて横スクロールするとバグった。 - kensir0uのしくみ] -- JTable.AUTO_RESIZE_OFF以外の場合は、setPreferredSize(...)で設定された幅は無視されて、JTableの幅が使用される -- `JTable.AUTO_RESIZE_OFF`以外の場合は、`setPreferredSize(...)`で設定された幅は無視されて、`JTable`の幅が使用される - 下 -- JViewport#getPreferredSize()もしくは、JTableHeader#getPreferredSize()をオーバーライドして、JTableHeaderの高さを変更 -- `JViewport#getPreferredSize()`もしくは、`JTableHeader#getPreferredSize()`をオーバーライドして、`JTableHeader`の高さを変更 #code{{ 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()で使用されている)変更される -- `viewport.setPreferredSize(...)`と設定しても可…? -- `JTableHeader#getHeight()`をオーバーライドすると、ヘッダ文字列などの描画だけ(`getHeight()`は`JTableHeader#getHeaderRect()`で使用されている)変更される **参考リンク [#we49e437] * 参考リンク [#we49e437] - [http://d.hatena.ne.jp/kensir0u/20090416/1239898154 JTableのJTalbeHeaderの高さを変更して列幅の合計が1200ピクセルを超えて横スクロールするとバグった。 - kensir0uのしくみ] -- このバグ?の状態を適切に示す良いサンプルコードがあります。 **コメント [#ib91d24e] * コメント [#ib91d24e] #comment