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

Трябва да видя дали е натиснат модифициращ клавиш (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