2012-02-03 116 views
0

我已將KeyListener添加到JTable;但是當我雙擊表格單元時,KeyListener停止工作。將KeyListener添加到JTable中

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 2012-02-03 22:01:48

回答

3

請勿使用KeyListener;使用Key Binding。更多的例子被引用爲here

或者,執行自定義表格單元格編輯器,如tutorial中所示。

+0

也許在這種情況下,鍵綁定是可以的。但是如果你想在你的表上執行簡單的操作,例如在箭頭鍵上,使用KeyListener很容易。並通過JTable.requestFocusInWindow()解決所有傳入的問題。我花了1h在這個綁定的事情和簡單的KeyListener解決了我的問題。 – Dracontis 2013-04-17 21:03:00

+1

謝謝你解釋你的倒票。我同情,但我必須不同意。 – trashgod 2013-04-18 00:53:29

-1

使用的MouseListener ...

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

嘗試同樣添加KeyListener的...在ClickCount的..