2012-02-03 8 views
0

KeyListenerJTableに追加しました。しかし、テーブルセルをダブルクリックすると、KeyListenerは機能しなくなります。JTableへのKeyListenerの追加

public class MyKeyListener extends KeyAdapter { 

    @Override 
    public void keyTyped(KeyEvent ke) { 
     char i = ke.getKeyChar(); 
     int ib = ((int) i); 
     if ((ib == 8)) { 
      if (jt1.isEditing()) { 
       jt1.getCellEditor().cancelCellEditing(); 
      } 
     } else { 
      // my code to do 
     } 
    } 
} 
+0

あなたが達成しようとしているかを示すために、あなたの質問を編集してください。 – trashgod

答えて

3

KeyListenerを使用しないでください。 Key Bindingを使用してください。より多くの例は、hereと記載されている。

また、tutorialに示すように、カスタムテーブルセルエディタを実装します。

+0

おそらくこの状況では、キーバインドはOKです。しかし、矢印キーのような簡単な操作をテーブルで実行したい場合は、KeyListenerを使用するのは簡単です。 JTable.requestFocusInWindow()によってすべての着信問題を解決します。私はこのBindingsのことに1時間を費やし、単純なKeyListenerは私の問題を解決します。 – Dracontis

+1

ダウンリストをご説明いただきありがとうございます。私は共感しますが、私は反対する必要があります。 – trashgod

-1

使用のMouseListener ...

jt1.addMouseListener(new MouseAdapter(){ 
     public void mousePressed(MouseEvent evt) 
      { 
       if (evt.getClickCount() == 2) 
       { 
        jt1.getCellEditor().cancelCellEditing(); 
           } 
         } 
        }); 

はのKeyListenerを追加するために同じことをしてみてください... clickCountは中..