Sample : テーブル列ヘッダーを複数段表示

実装サンプル : 3_4.テーブルヘッダーを複数段表示

テーブルの列ヘッダーを複数段にて表示する方法のご紹介です。
方法として 3種類をご紹介しますので、目的に合ったものを選択してください。

1.Labelのhtml形式記述を使用する
2.HeaderRendererを入替える
3.HeaderRenderer + UI を入替える

Labelのhtml形式記述を使用する↑top

デフォルトのTableHeaderRendererは javax.swing.JLabel にて表現されています。
そこで、JLabelの機能である html形式の表示を利用して複数段表示を実現します。

CAMC/テーブル/テーブル列 の 表示文字列 に HTMLにて 以下のように記述します。

この場合注意が必要なのは テーブルの一番左の列の高さが テーブル列ヘッダーの高さになります。
つまり 行ヘッダー表示なし + 一番段数が多い列を 一番左にする必要があります。
(独自ロジッククラスでテーブルヘッダのPrefferdSizeを設定する場合を除く)

メリットとしては、CAMC上の設定のみで実装できる (HeaderRendererを作成する必要がない) 事になります。

HeaderRendererを入替える↑top

デフォルトのTableHeaderRendererはjavax.swing.JLabelで作成されていますが、 これを 複数のJLabel をレイアウトした JPanel に変更します。
"1つの列" のHeaderの表示を "複数段、列 に見せる" (1列の分割表示) というものになります。 ./images/multirenderer.png

この方法の場合、Headerの表示は自由にレイアウトする事が可能になりますが、 入力セルの部分については1セルのままになります。
入力セルの部分も複数段にしたい場合には、別途対応が必要になります。

[サンプル提供]: jp.ne.mki.wedge.education.table.header.multirenderer.SetMultiHeaderRenderer source にてサンプル実装をしています。

HeaderRenderer + UI を入替える↑top

HeaderRenderer と UIを入替え をすることにより、
"複数の列" のHeader部分を "一つのLabelとして表示にする" (複数列のグループ化)
ことが可能になります。 ./images/uirenderer.png 但し、列移動可能 には対応していませんのでご注意ください。

[サンプル提供]: jp.ne.mki.wedge.education.table.header.group.SetHeaderGroup source のロジッククラスを 使用することにより表示が可能です。
[サンプル提供]: jp.ne.mki.wedge.education.table.header.group.GroupHeaderSample source にて使用方法のサンプルを 記述しています。

このロジッククラスは Ver1.2.0 , WindowsOS、LookAndFeel=Metal にて動作を確認しています。
UIを入替えしているため、環境によっては 描画・動作がおかしく なる可能性もあります。
自己責任での使用をお願いします。

Valid XHTML 1.1