• ベストアンサー

JTableのViewの操作に関して

JTableを利用してグラフィカルなテーブル表を作成したいと思っています。 (例) NAME AGE TEL ADDRESS ------------------------------------ tanaka 30  X-X-X XXX yamada 23 Y-Y-Y YYY この際、以下のようなことは実現可能でしょうか? また可能な場合、どのようなコーティングになるのでしょうか? (1)特定の列を非表示にする  例えば"TEL"カラムを非表示にする(ただし内部で内容を保持) (2)値すべてを非表示にする  ただし、"NAME"などの列名(ヘッダー)はそのまま表示する

質問者が選んだベストアンサー

  • ベストアンサー
  • bgbg
  • ベストアンサー率53% (94/175)
回答No.1

(1) 表示、非表示を司るプロパティはありません。 かわりにViewクラス(この場合はJTable)から列を削除したり追加したりさせます。 TableColumn column table.getColumn("TEL"); table.removeColumn(column); table.addColumn(column); 一般には表示状態を記憶する変数を用意し、表示/非表示のリクエストがあるたびに Viewクラスを再構築させるようにすると思います。 ちなみにこの方法で列を消したり追加しても内部のデータに影響は出ません。 自分だったら列の表示・非表示ができるJTableのサブクラスを作りますね。 (2) こちらも表示・非表示することはできず、表示させたくない場合は Modelクラスから全ての行を削除することになるでしょう。 削除すると値の保持はされませんので、元のModelのコピーを作っておく必要があるでしょう。 ざっくり書きましたが、この2つを実装するのはおそらく結構しんどいです。

renann
質問者

お礼

アドバイスありがとうございます。 Jtableは、便利なんだけど、やはりEXCELほどの作りこみはやりにくいですね。。。 アドバイスどおり、View操作を行うJtableのサブクラスを作成しました。

その他の回答 (1)

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.2

条件によって手段が変ってきます。 ・補足要求1 テーブルは表示だけか、それとも入力があるのか ・補足要求2 非表示というのは常に非表示なのか、表示/非表示の切り替えがあるのか

関連するQ&A