2011-09-17 27 views
3

私はその中にプレーンテキストの列を持っています。JTable(Java)にリスナーのタイプを追加する方法は?

ユーザーがその列の行をダブルクリックすると、列はその行のために編集する必要があります。

テキストが編集されたとき(ユーザーがEnterキーを押すなど)に検出する必要があります。それが起こると、私はその変更の行IDを取得するために何か必要です(もちろん0ベース)。

アイデア?

ありがとうございます!

+0

ここに](http://stackoverflow.com/questions/7350445/how-do-i-get-the-cellrow-when-there-is-an-itemevent-in-the-jcombobox-within-the-c/7356518 #7356518)。 – trashgod

答えて

7

あなたはTableModelのにリスナーを追加する必要があります

table.getModel().addTableModelListener(new TableModelListener() { 

     public void tableChanged(TableModelEvent e) { 
     // your code goes here; 
     } 
    }); 

TableModelEventは、行と列の数と変更の種類が含まれています。

+0

どのように検出された行を取得するのですか? – Confiqure

+0

答えを編集して文書への参照を –

+0

行IDを取得するコード行を教えてもらえますか? – Confiqure

1

私は、行と列の観点からクリックの位置を取得する最も簡単な方法は、このことだと思う:[あなたは、行番号に基づいてモデルを更新する予定がある場合は、示されたアプローチを検討

table.addMouseListener(new java.awt.event.MouseAdapter() { 
    @Override 
    public void mouseClicked(java.awt.event.MouseEvent e) { 
     int row = table.rowAtPoint(e.getPoint()); 
     int column = table.columnAtPoint(e.getPoint()); 
     if (row >= 0 && column >= 0) { 
      ...... 

     } 
    } 
}); 
+0

ありがとうございますが、私は両方の混合物が必要です。私はそれにプレーンテキストの列を持っています。ユーザーがその列の行をダブルクリックすると、列はその行のために編集されます。私は、テキストが編集されたときに(ユーザーがEnterキーを押すときのように)何かを検出する必要があります。そのとき、私はその変更の行IDを得るために何か必要です(もちろん0ベース)。 – Confiqure

+0

TableModelListenerにアクセスしている間にMouseEventsを使用しますか? – kukis

関連する問題