2012-02-03 97 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的..