2012-06-27 5 views
1

мне нужно, чтобы увидеть, если клавиша-модификатор нажата (сдвиг, Ctrl, Alt) для моего события мыши (в основном Ctrl + клик)Функция, чтобы проверить, если keyispressed

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

+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) - только они находятся в форме битмаски, поэтому все «флаги» модификатора объединяются как одно целое. Вы можете извлечь один модификатор в соответствии с приведенным выше примером. –

 Смежные вопросы

  • Нет связанных вопросов^_^