簡體   English   中英

如何使用KeyEvent

[英]How to use KeyEvent

我正在編寫小圖形編輯器,當我按下Ctrl + A時我想要捕獲事件

我使用這樣的代碼(這是測試版):

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

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

我嘗試過這樣的事情

    case KeyEvent.VK_CONTROL+KeyEvent.VK_A :
        System.out.println("A+CTRL");
        break;

但是這段代碼KeyEvent.VK_CONTROL+KeyEvent.VK_A返回int,也許另一個鍵組合返回相同的數字

那么有人可以幫助我

您可以使用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;
        ...
}

嘗試這個.....

f.addKeyListener(new KeyListener() {

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyPressed(KeyEvent e) {
            if ((e.getKeyCode() == KeyEvent.VK_A) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) {
                System.out.println("woot!");
            }
        }

        @Override
        public void keyReleased(KeyEvent e) {
        }
    });

KeyEvent上嘗試isControlDown方法: httpisControlDown

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM