【问题标题】:Adding a KeyListener to JTable将 KeyListener 添加到 JTable
【发布时间】:2012-02-26 09:18:35
【问题描述】:

我已将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
        }
    }
}

【问题讨论】:

  • 请编辑您的问题以说明您要完成的工作。

标签: swing jtable double-click keylistener tablecelleditor


【解决方案1】:

不要使用KeyListener;使用Key Binding。更多示例引用here

或者,实现自定义表格单元格编辑器,如tutorial 所示。

【讨论】:

  • 也许在这种情况下键绑定是可以的。但是如果你想在你的桌子上执行简单的动作,例如在箭头键上,使用 KeyListener 很容易。并通过 JTable.requestFocusInWindow() 解决所有传入的问题。我在这个 Bindings 事情上花了 1 小时,简单的 KeyListener 解决了我的问题。
  • 感谢您解释您的反对意见。我很同情,但我必须不同意。
【解决方案2】:

使用 MouseListener ...

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

尝试在点击计数中添加 keyListener...。

【讨论】:

    猜你喜欢
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    相关资源
    最近更新 更多