Sample : テーブル列固定
実装サンプル : 3_3.テーブル列固定(同期化テーブル)
ここでのテーブル列固定とは、
Grid特定列は常に表示したまま、スクロールを行うことを指しています。
例えば、Excelにて 列を選択した状態にて ウィンドウ(W) → ウィンドウ枠固定(F) を
行った時と同じ動きとイメージしてください。
javax.swing.JTable では 列固定の機能が無いため、自作する必要があります。
今回ご紹介するのは 「テーブルを2つ並べてテーブル同士を同期させる」 方法です。
実装後の イメージは以下のようになります。
テーブルを2つ配置↑top
- GUIデザイナにて テーブルを2つ追加し 横に並べます。
- 右側のテーブル の CAMC/コンポーネント/コンポーネント属性 にて Table_isRowHeaderVisibleをfalse に設定し、行ヘッダーを消します。
- CAMC/テーブル にて 右側のテーブルの 追加/挿入などのメニューを ×にします。
右側のテーブル の 列リサイズは OFF以外 にすると テーブルサイズピッタリになります。
- CAMC/テーブル/テーブル列 にて 表示するアイテムを設定します。
行スクロール、選択行、行操作選択ダイアログによる行操作の同期↑top
[サンプル提供]:
jp.ne.mki.wedge.education.table.synchro.leftcenter.SetLeftCenterSynchro
の ロジッククラスを実行すると 行スクロール、選択行、行操作選択ダイアログによる行操作 による同期を
行います。
テーブル内フォーカス移動の同期↑top
Tab,Enter キー などによるテーブルセルフォーカス移動の動きを 1つのテーブルと同じ動きにする
ロジッククラス
[サンプル提供]:
jp.ne.mki.wedge.education.table.synchro.leftcenter.SetSynchroTableNavigationMap
を実行します。
テーブル列リサイズ制御の同期↑top
テーブル列のサイズ変更可 にてテーブルを使用する場合では、
2つのテーブル間 も 通常の列リサイズ と同様に マウスドラッグでサイズを変更したい
という要望もあるかと思います。
その場合には、
[サンプル提供]:
jp.ne.mki.wedge.education.table.synchro.leftcenter.SynchroTableSizeChange
の ロジッククラスを実行します。