Мой вопрос на самом деле более общий, но я использую действие пользователя, удерживающего клавишу «Alt» и нажимающего «+», в качестве примера, который показывает трудности.
Я работаю на американской английской клавиатуре, у которой "=" (нижний регистр) и "+" (верхний регистр) на одной клавише, поэтому нажимаю "Alt +" (как может быть указано в пункте меню). ), Я должен фактически нажать «Alt Shift =». В Java AWT нажатие «Alt Shift =» генерирует нажатие клавиши KeyEvent с кодом клавиши, связанным с клавишей «=», и набираемый клавишей KeyEvent, содержащий символ «±». Таким образом, не существует очевидного, надежного способа программного решения, что «Alt» удерживается, пока нажата клавиша «+».
Я мог бы сделать некоторое внутреннее сопоставление, чтобы исправить это, например сопоставление "±" с "Alt +" или сопоставление "Shift {keycode for =}" с "+". Однако, кажется, нет никаких гарантий, что это будет работать при разных раскладках клавиатуры; и это, конечно, не очень хороший стиль кодирования.
Если кто-то может предложить способ обойти эти проблемы или, возможно, указать код, который уже справился с этой трудностью, я был бы очень признателен.
Спасибо.