我正在使用 Java Swing 在 GUI 应用程序中处理一些 MouseEvent。
因为现在我在 mousePressed 方法中分析鼠标事件,只是为了确定是否发生了左击或右击。
我的代码是:
public void mousePressed(MouseEvent me) {
if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK){
//left click
}else if (me.getModifiers == InputEvent.BUTTON3_DOWN_MASK){
//right click
}
现在我的应用程序变得越来越复杂,我还需要检查鼠标左键单击时是否按下了 Shift 按钮。我想做这样的事情:
public void mousePressed(MouseEvent me) {
if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK && me.isShiftDown()){
//left click
}
现在这行不通了。特别是如果我在按住 SHIFT 的同时单击左键 isShiftDown 会返回 true (没错。我期待这一点),但现在看来修饰符也发生了变化,并且与 BUTTON1_DOWN_MASK 的比较失败了。
me.getModifiers == InputEvent.BUTTON1_DOWN_MASK //failed..modifiers are changed
我究竟做错了什么?如何修复我的代码?