我正在写一个小的图形编辑器,我想当我按下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,也许另一个组合键返回相同的数字
所以有人能帮我吗?
发布于 2012-11-25 23:08:36
您可以使用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-25 23:05:44
试试这个..。
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-25 23:06:38
在KeyEvent上尝试isControlDown方法:http://docs.oracle.com/javase/6/docs/api/java/awt/event/InputEvent.html#isControlDown%28%29
https://stackoverflow.com/questions/13552229
复制相似问题