2016-12-24 27 views
-1

そのセルの編集中にキーを離すと、セルの座標(行インデックスと列インデックス)がJTableになります。JTableで編集中のセルの位置

@Override 
public void keyReleased(KeyEvent released) { 
    JTable tbl = (JTable)(released.getSource()); 
    if (tbl.getCellEditor() != null) 
     System.out.println(tbl.getSelectedRow()+","+tbl.getSelectedColumn()); 
} 

をしかし、これは、セルが編集中の位置(行インデックスおよび列インデックスを)返しません:私はこの方法でそれをやろうとしています。助けてください。

+0

これは奇妙な要求で、[XY問題](http://mywiki.wooledge.org/XyProblem)に、特定のコード問題を解決する方法を尋ねているかもしれないことを少なくとも私に示唆しています。最良の解決策は全く異なるアプローチを使用することです。あなたが現在解決しようとしている方法ではなく、解決しようとしている全体的な問題を教えてください。また、有効な[mcve]を作成して投稿することを検討してください。 –

+1

JTableセルエディタでKeyListenerを使用する理由 - いくつかの問題があります。通常、この情報を入手するにはより良い方法があります。もう1つ - KeyListenerのソースがJTableで、エディタオブジェクトではないことは確かですか? –

答えて

2

このセルの編集中にキーが離されると、

意味がありません。エディタは、セルの編集中にフォーカスを当てます。また、ユーザーはマウスを使用してセルを編集モードにすることができます。

あなたは、細胞は、あなたがJTablePropertyChangeListenerを追加することができます編集を開始したときに知りたい場合は、次の

// 
// Implement the PropertyChangeListener interface 
// 
    @Override 
    public void propertyChange(PropertyChangeEvent e) 
    { 
     // A cell has started/stopped editing 

     if ("tableCellEditor".equals(e.getPropertyName())) 
     { 
      if (table.isEditing()) 
       // code for editing started; 
      else 
       // code for editing stopped; 
     } 
    } 

次に、あなただけの行/列を取得するためにgetSelected...()メソッドを使用します。

+0

そんなにまともな質問ではまともな答えです。 –

関連する問題