• category: swing folder: TableHeaderHeight title: JTableHeaderの高さを変更 tags: [JTableHeader, JTable, JScrollPane, JViewport] author: aterai pubdate: 2012-05-28T14:51:47+09:00 description: 内部の文字サイズなどはそのままで、JTableHeaderの高さだけを変更する方法をテストします。 image: https://lh4.googleusercontent.com/-l20IOO5wKSo/T8MIf7FVUwI/AAAAAAAABNM/9BNN63T96Fo/s800/TableHeaderHeight.png hreflang:
       href: https://java-swing-tips.blogspot.com/2012/06/height-of-jtableheader.html
       lang: en

概要

内部の文字サイズなどはそのままで、JTableHeaderの高さだけを変更する方法をテストします。

サンプルコード

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

解説

    • 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()で使用されているため

参考リンク

コメント