プロが教える店舗&オフィスのセキュリティ対策術

JTtableで作成したテーブルのセルに、チェックBOXなどのComponentを埋め込むことは可能ですか?

A 回答 (1件)

可能です。


JTableは、各コラムのモデル、レンダラー、セルエディタといったものの組み合わせによるMVCモデルにより設計されています。この基本的な働きや使い方などはわかりますか? それがわからないと具体的な説明は難しいのですが・・。
 考え方としては、まずセルの値を編集するためのコンポーネントであるセルエディタ(CellEditor)を作成し、それをColumnModelの指定するコラムに設定をします。

DefaultCellEditor ce = new DefaultCellEditor(new JCheckBox());
<<JTable>>.getColumnModel().getColumn(0).setCellEditor(ce);

例えば、こんな形で組み込めばいいと思います。
ただし、このCellEditorはコラム単位で設定されますので、そのコラムではすべて設定したコンポーネントがセルエディタとして使用されます。特定のセルだけに表示させたい場合は、編集するセルの行に応じて処理を変えるなどの対処が必要になるように思います。

また、これは値を設定する場合の処理ですが、「セルの表示をチェックボックスにしたい」ということならば、セルのレンダラーを設定すれば良いでしょう。これはTableCellRenderer継承クラスをあらかじめ定義しておき、それをコラムに設定すれば良いでしょう。

// レンダラークラスの定義
class MyRenderer extends DefaultTableCellRenderer {

public Component getTableCellRendereComponent(略){
・・ここにレンダラーコンポーネントをreturnする処理を書く・・
}
}

//その組み込み
MyRenderer mr = new MyRenderer();
<<JTable>>.getColumnModel().getColumn(0).setCellRenderer(mr);

例えば、こんな感じになります。
いずれにしても、JTableの仕組みを理解してないとちょっと難しいと思いますので、まずはそれらから調べてみると良いかと思います。

P.S.
同じ投稿が以前のJava Houseにあったのでリンクをつけておきます。

参考URL:http://java-house.jp/ml/archive/j-h-b/020341.html
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
参考情報を活用させて頂きます。ありがとうございました。

お礼日時:2005/09/26 05:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!