我需要在表格中单击Ctrl + A时启用按钮

时间:2011-01-02 14:08:31

标签: java keylistener

我试图在Jtable中单击“Ctrl + A”以选择所有行时启用JButton,因此我执行此代码:

myTable.addKeyListener( new KeyListener() {         
    @Override
    public void keyReleased(KeyEvent e) {
        if( e.getKeyCode() == KeyEvent.VK_A && ( e.getModifiers() & InputEvent.CTRL_MASK ) != 0 ) {  // User clicked (CTRL + A) in table.
            if( myTable.getRowCount() > 1 )
                myButton.setEnabled( true );
        }
    }               
});

问题是很多次这不起作用...每次表中的所有行都被选中,但是按钮没有启用!我必须单击“Ctrl + A”3或4次才能使用。有什么关于我应该知道的,或者更好的想法让它起作用吗?

2 个答案:

答案 0 :(得分:1)

尝试覆盖keyPressed而不是keyReleased

答案 1 :(得分:0)

  

或更好的想法让它起作用?

您应该使用Key Bindings,而不是KeyListener。