首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用KeyEvent

如何使用KeyEvent
EN

Stack Overflow用户
提问于 2012-11-25 23:03:48
回答 3查看 47K关注 0票数 2

我正在写一个小的图形编辑器,我想当我按下Ctrl+A的时候捕捉事件

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

代码语言:javascript
复制
@Override
public void keyPressed(KeyEvent e) {
    System.out.println("Press");
    switch (e.getKeyCode()){
        case KeyEvent.VK_A :
            System.out.println("A");
            break;
    }
}

但我不知道怎么抓到Ctrl+a

我试过这样的方法

代码语言:javascript
复制
    case KeyEvent.VK_CONTROL+KeyEvent.VK_A :
        System.out.println("A+CTRL");
        break;

但是这段代码KeyEvent.VK_CONTROL+KeyEvent.VK_A返回int,也许另一个组合键返回相同的数字

所以有人能帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-25 23:08:36

您可以使用isControlDown()方法:

代码语言:javascript
复制
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;
        ...
}
票数 5
EN

Stack Overflow用户

发布于 2012-11-25 23:05:44

试试这个..。

代码语言:javascript
复制
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) {
        }
    });
票数 3
EN

Stack Overflow用户

发布于 2012-11-25 23:06:38

KeyEvent上尝试isControlDown方法:http://docs.oracle.com/javase/6/docs/api/java/awt/event/InputEvent.html#isControlDown%28%29

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13552229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档