Я обрабатываю MouseEvent в приложении с графическим интерфейсом, используя Java Swing.
Так как теперь я анализировал события мыши внутри метода 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
Что я делаю не так? Как я могу исправить свой код?