2

小さなグラフィックエディタを書いていますが、Ctrl+Aを押したときにcatchイベントが必要です

私はそのようなコードを使用します(これはテストバージョンです):

@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を返し、おそらく別のキーの組み合わせが同じ数を返します

だから誰かが私を助けることができます

4

3 に答える 3

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;
        ...
}
于 2012-11-25T15:08:35.750 に答える
3

これを試して.....

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) {
        }
    });
于 2012-11-25T15:05:44.437 に答える
3

isControlDownメソッドを試すKeyEvent: http://docs.oracle.com/javase/6/docs/api/java/awt/event/InputEvent.html#isControlDown%28%29

于 2012-11-25T15:06:37.907 に答える