- PR -

テーブルのセルが変更されたかを知りたいのですが・・・

1
投稿者投稿内容
会議室デビュー日: 2005/05/07
投稿数: 12
投稿日時: 2005-05-08 01:41
再度お世話になります。
セルの内容が変更されたかどうかを知りたい為に、
JTableを継承したクラスを作成しました。

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;

public class ExJTable extends JTable {
ExJTable(){
super();
}
ExJTable(DefaultTableModel dtm){
super(dtm);
}

public void editingStopped(ChangeEvent ce) {
super.editingStopped(ce);
int row = getSelectedRow();
int col = getSelectedColumn();
if(row<0) row = 0;
if(col<0) col = 0;

Object value = getValueAt(row,col);
System.out.println(row + "," + col + ":" +value);
}

}

editingStoppedはセルの内容が変更された場合のみ呼ばれるとあったのですが、
セルをダブルクリックしたときでも呼ばれてしまいます。
セルの内容が変更された場合のみ、
イベントを拾いたい場合はどうすればいいのでしょうか?
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2005-05-08 02:08
ソースコードを読んでもらおうという努力が足りない。教えてもらったばかりの [code] はどうしたの? 使わないの?
aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2005-05-08 08:02
引用:
editingStoppedはセルの内容が変更された場合のみ呼ばれるとあったのですが、


あなたの勘違いだと思います。
JavaDocには、編集が完了したときと書かれています。
つまり、内容が変更されていようがいまいが、(キャンセルされずに)編集が完了された時に呼ばれるのです。

あなたのJTableに関する質問はそんな特殊なものではなく基本的な事で、かつメジャーですので、Swingの書籍なりネット上でなり調べるとサンプルがわんさか出てきます。(JavaDocからも使い方を解説したページへのリンクも貼られてますし。)
自分で調べないと応用が利きませんよ。
会議室デビュー日: 2005/05/07
投稿数: 12
投稿日時: 2005-05-08 08:56
aa様 どうもすみませんでした。
某書籍には、セルが変更された場合のみに呼ばれるってあったので、
お伺いしたのです。
自分で調べてみます。
分かり次第自己レスします。
1

スキルアップ/キャリアアップ(JOB@IT)