如何使用 KeyEvent

Ale*_*gak 2 java swing keylistener

我正在编写小型图形编辑器,我想在按 Ctrl+A 时捕获事件

我使用这样的代码(这是测试版):

@Override
public void keyPressed(KeyEvent e) {
    System.out.println("Press");
    switch (e.getKeyCode()){
        case KeyEvent.VK_A :
            System.out.println("A");
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何捕捉 Ctrl+a

我试过这样的事情

    case KeyEvent.VK_CONTROL+KeyEvent.VK_A :
        System.out.println("A+CTRL");
        break;
Run Code Online (Sandbox Code Playgroud)

但此代码KeyEvent.VK_CONTROL+KeyEvent.VK_A返回 int 并且可能另一个组合键返回相同的数字

所以有人可以帮助我吗

Juv*_*nis 5

您可以使用isControlDown()方法:

switch (e.getKeyCode())
{
        case KeyEvent.VK_A :
            if(e.isControlDown())
               System.out.println("A and Ctrl are pressed.");
            else
                System.out.println("Only A is pressed");
            break;
        ...
}
Run Code Online (Sandbox Code Playgroud)