2012-06-27 59 views
1

我要看看是否修改键被按下(Shift,Ctrl,ALT)为我的鼠标事件(主要是CTRL +点击)功能检查,如果keyispressed

我在想,如果有一个简单的函数来检查如果没有实施键盘记录器或动作事件而按下某个键,以便没有跟踪焦点在哪里或变量在何处的麻烦。

+2

我相信,在事件了。你看过文档吗? – 11684

+0

在jsp中,SWT,GWT,AWT,Swing ???,我也想知道 – mKorbel

回答

2

您可以通过调用InputEvent.getModifiers()来获得修改器被按下的掩码。

因此,如果你想知道一个特定的修改是否被按下(如Shift键),你可以这样做,因为

// (doesn't have to be a method, of course, you could easily do this inline) 
private boolean wasShiftPressed(MouseEvent evt) { 
    return evt.getModifiers() & InputEvent.SHIFT_MASK != 0; 
} 
+0

所以鼠标事件本身有修饰符?完善! – adrix89

+0

是的(假设你正在使用Swing/AWT) - 只有它们是位掩码形式,所以所有的修饰符“标志”被合并为一个整数。您可以按照上面的示例提取单个修改器。 –