сдвиг и состояние fn (alt) на физической клавиатуре

мне нужно знать состояние Shift и Fn(Alt) на физической клавиатуре, когда они нажаты или заблокированы.

я знаю, что у класса KeyEvent есть такие методы, как isAltPressed() и isShiftPressed(), это отлично работает, когда сдвиг или fn нажимаются один раз, но когда они нажимаются дважды и блокируются, я не могу узнать, заблокирована ли эта клавиша или нет.

также getMetaState() возвращает 0, когда сдвиг или fn заблокированы, и я нажимаю другую клавишу, например p

так есть ли какой-нибудь метод, например isShiftLocked() или isAltLocked() или что-то в этом роде?


person mehdok    schedule 20.02.2014    source источник


Ответы (1)


поскольку нет способа сделать это для меня, я должен отслеживать сдвиг и fn вручную. когда вызывается метод onKeyDown(), я могу проверить сдвиг или fn keycode, и если они нажаты, логические переменные, такие как shiftPressed или shiftLocked, будут обновлены.

person mehdok    schedule 23.02.2014