• category: swing folder: HtmlCellVerticalAlignment title: TableCellRendererに複数行のHtmlテキストを表示する場合に行揃えを設定する tags: [JTable, TableCellRenderer, Html, JLabel] author: aterai pubdate: 2014-08-11T00:16:05+09:00 description: JTableのCellに複数行になるHtmlテキストを表示する場合の行揃えによる描画の変化をテストします。 image: https://lh5.googleusercontent.com/-Id-AlEWH0-M/U-eKsOPZf6I/AAAAAAAACLI/asLZtz0cOvk/s800/HtmlCellVerticalAlignment.png

概要

JTableCellに複数行になるHtmlテキストを表示する場合の行揃えによる描画の変化をテストします。

サンプルコード

((JLabel) table.getDefaultRenderer(Object.class)).setVerticalAlignment(SwingConstants.TOP);
View in GitHub: Java, Kotlin

解説

  • JTableのセルレンダラーとしてDefaultTableCellRenderer(JLabelを継承)を使用して複数の行が存在するHtmlテキストを表示
    • 行揃え(VerticalAlignment)にSwingConstants.TOP以外を設定
    • マウスドラッグによるセル選択で描画が乱れる場合がある

  • Java 9で修正された?
    • 例えばBOTTOMを選択して0行目から6行目までマウスドラッグで選択するとJava 8では1から2行のセル表示内容が変化するがJava 9では変化しない

参考リンク

コメント