Sample : テーブル列固定

実装サンプル : 3_3.テーブル列固定(同期化テーブル)

ここでのテーブル列固定とは、 Grid特定列は常に表示したまま、スクロールを行うことを指しています。
例えば、Excelにて 列を選択した状態にて ウィンドウ(W) → ウィンドウ枠固定(F) を 行った時と同じ動きとイメージしてください。

javax.swing.JTable では 列固定の機能が無いため、自作する必要があります。
今回ご紹介するのは 「テーブルを2つ並べてテーブル同士を同期させる」 方法です。
実装後の イメージは以下のようになります。 ./images/columnfix.png

1.テーブルを2つ配置
2.行スクロール、選択行、行操作選択ダイアログによる行操作の同期
3.テーブル内フォーカス移動の同期
4.テーブル列リサイズ制御の同期

テーブルを2つ配置↑top

  1. GUIデザイナにて テーブルを2つ追加し 横に並べます。
  2. 右側のテーブル の CAMC/コンポーネント/コンポーネント属性 にて Table_isRowHeaderVisibleをfalse に設定し、行ヘッダーを消します。
    ./images/comp-property.png
  3. CAMC/テーブル にて 右側のテーブルの 追加/挿入などのメニューを ×にします。
    右側のテーブル の 列リサイズは OFF以外 にすると テーブルサイズピッタリになります。
    ./images/camc-table.png
  4. CAMC/テーブル/テーブル列 にて 表示するアイテムを設定します。

行スクロール、選択行、行操作選択ダイアログによる行操作の同期↑top

[サンプル提供]: jp.ne.mki.wedge.education.table.synchro.leftcenter.SetLeftCenterSynchro source の ロジッククラスを実行すると 行スクロール、選択行、行操作選択ダイアログによる行操作 による同期を 行います。

テーブル内フォーカス移動の同期↑top

Tab,Enter キー などによるテーブルセルフォーカス移動の動きを 1つのテーブルと同じ動きにする ロジッククラス [サンプル提供]: jp.ne.mki.wedge.education.table.synchro.leftcenter.SetSynchroTableNavigationMap source を実行します。

テーブル列リサイズ制御の同期↑top

テーブル列のサイズ変更可 にてテーブルを使用する場合では、 2つのテーブル間 も 通常の列リサイズ と同様に マウスドラッグでサイズを変更したい という要望もあるかと思います。
その場合には、 [サンプル提供]: jp.ne.mki.wedge.education.table.synchro.leftcenter.SynchroTableSizeChange source の ロジッククラスを実行します。

Valid XHTML 1.1