Клавиатура только отправляет коды клавиш в базовый стек.Это зависит от ОС и программного обеспечения, чтобы выяснить, как использовать это.Теперь, возможно, аппаратное обеспечение имеет простой код, который зависит от местоположения, и происходит некоторый перевод, чтобы превратить его в полезный ключевой код для приложений.Я считаю, что это должно быть так, поскольку макет может быть выбран из ОС.Но это не похоже на низкоуровневые вещи, к которым у вас будет доступ в Java, если не считать JNI.
Исходя из KeyListener , вы можете захватить KeyEvents .Я бы посоветовал вам изучить документацию, поля и методы этого класса и, возможно, создать небольшое тестовое приложение, которое фиксирует такие события и выводит результаты различных методов.Может быть, вы найдете какой-то общий язык.
Если нет простого способа сделать это, возможно, лучше иметь какую-то схему таблицы перевода, которая стандартизирует ввод для наиболее распространенных раскладок, таких как Qwerty и Azerty.Это должно делать это для большинства пользователей, и, поскольку вы хотите полагаться на абсолютное позиционирование, требование одного из небольшого набора макетов не представляется неприемлемым.Пользователи могут изменить макет в ОС.
Если вам доведется делать игру, возможно, создайте огромную контрольную колоду, которую люди будут вынуждены покупать, чтобы получить лучший опыт .Дополнительные деньги!: D