- ベストアンサー
JTableのViewの操作に関して
JTableを利用してグラフィカルなテーブル表を作成したいと思っています。 (例) NAME AGE TEL ADDRESS ------------------------------------ tanaka 30 X-X-X XXX yamada 23 Y-Y-Y YYY この際、以下のようなことは実現可能でしょうか? また可能な場合、どのようなコーティングになるのでしょうか? (1)特定の列を非表示にする 例えば"TEL"カラムを非表示にする(ただし内部で内容を保持) (2)値すべてを非表示にする ただし、"NAME"などの列名(ヘッダー)はそのまま表示する
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(1) 表示、非表示を司るプロパティはありません。 かわりにViewクラス(この場合はJTable)から列を削除したり追加したりさせます。 TableColumn column table.getColumn("TEL"); table.removeColumn(column); table.addColumn(column); 一般には表示状態を記憶する変数を用意し、表示/非表示のリクエストがあるたびに Viewクラスを再構築させるようにすると思います。 ちなみにこの方法で列を消したり追加しても内部のデータに影響は出ません。 自分だったら列の表示・非表示ができるJTableのサブクラスを作りますね。 (2) こちらも表示・非表示することはできず、表示させたくない場合は Modelクラスから全ての行を削除することになるでしょう。 削除すると値の保持はされませんので、元のModelのコピーを作っておく必要があるでしょう。 ざっくり書きましたが、この2つを実装するのはおそらく結構しんどいです。
その他の回答 (1)
- ngsvx
- ベストアンサー率49% (157/315)
条件によって手段が変ってきます。 ・補足要求1 テーブルは表示だけか、それとも入力があるのか ・補足要求2 非表示というのは常に非表示なのか、表示/非表示の切り替えがあるのか
お礼
アドバイスありがとうございます。 Jtableは、便利なんだけど、やはりEXCELほどの作りこみはやりにくいですね。。。 アドバイスどおり、View操作を行うJtableのサブクラスを作成しました。