Функция проверки нажатия клавиши

Мне нужно увидеть, нажата ли клавиша-модификатор (shift, ctrl, alt) для моего события мыши (в основном ctrl + щелчок)

Мне было интересно, есть ли простая функция для проверки нажатия клавиши без реализации списка ключей или событий действия, чтобы не было проблем с отслеживанием того, где находится фокус или где находятся переменные.


person adrix89    schedule 27.06.2012    source источник
comment
Я считаю, что это уже произошло. Вы просматривали документы?   -  person 11684    schedule 27.06.2012
comment
где в jsp, SWT, GWT, AWT, Swing???, мне тоже было интересно   -  person mKorbel    schedule 27.06.2012


Ответы (1)


Вы можете получить маску того, какие модификаторы были нажаты, вызвав 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;
}
person Andrzej Doyle    schedule 27.06.2012
comment
Итак, у самого события мыши есть модификаторы? Идеальный! - person adrix89; 27.06.2012
comment
Да (при условии, что вы используете Swing/AWT) - только они в форме битовой маски, поэтому все флаги модификатора объединяются как одно целое число. Вы можете извлечь один модификатор, как в примере выше. - person Andrzej Doyle; 27.06.2012