- - PR -
JTableのセルをダブルクリック
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-06-23 13:57
お世話になってます。
今、JTableを使ってファイルのリスト表示みたいなものを作っています。 普通、セルをダブルクリックするとデフォルトセルエディターが表示されます。 現在、セルの一部をエクスプローラの詳細表示のように縮小アイコンとファイル名を 表示するために、デフォルトセルレンダーを自作して、getTableCellRendererComponent でアイコン表示付のラベルを返すようにしています。ラベルなので文字が太くなってます。 で、普段はきちんとアイコン表示付のラベルでファイル一覧が表示されるのですが、 それをダブルクリックしたときに、デフォルトセルエディターが表示されてしまい、 アイコンが消えて文字も普通の文字に変わってしまいます。 ダブルクリックしてもデフォルトセルエディターを表示させずに、mouseClickedイベントを 発生させたい場合はどのようにするのでしょうか? ご存知の方おられませんか? OS:Win2000 JDK:1.4.1 [ メッセージ編集済み 編集者: maru 編集日時 2003-06-23 14:52 ] | ||||
|
投稿日時: 2003-06-23 15:09
はじめまして。
私が以前とった方法ですと、DefaultTableModelを 継承したオリジナルのテーブルモデルをつくって使いました。 JTableを継承しているならば、isCellEditable()をオーバーライドして 実現できると思います。 class ReadOnlyTableModel extends DefaultTableModel { public boolean isCellEditable(int rowIndex,int columnIndex) { if (columnIndex == 1) { return false; } else return true; } } 上の例ですと、1カラム目のセルが編集不可になります。 これでどうでしょうか? [ メッセージ編集済み 編集者: ゆう 編集日時 2003-06-23 15:18 ] | ||||
|
投稿日時: 2003-06-23 15:47
こんにちは。
早速の返答ありがとうございます。 ご教示のように、JTableのisCellEditableをオーバーライトする事でできました。 こういう手があったのを忘れてました。 Javaは○○をオーバーライトする事でかなり細かなことができますが、なれないうちは 思いつかないですよねぇ。私だけ? setCellEditable 見たいなメソッドを一生懸命探してました。 | ||||
|
投稿日時: 2003-06-23 17:21
こんにちは。お世話になってます。
今まで10年近くCばかりを使っていて、先月からJavaをはじめたのですが 慣れるまではなかなか時間がかかりそうですね。 私もオーバーライドはすぐには思いつかないです。 JTableに関しては先日プログラムしたのでお返事できましたが…。 なので、maruさんだけではないと思いますのでご安心を。 [ メッセージ編集済み 編集者: ゆう 編集日時 2003-06-23 17:25 ] | ||||
1
