В приложении JavaFX (фактически ScalaFX) я хотел бы разрешить пользователю вызывать команды с помощью последовательности клавиш клавиатуры. Эти команды должны работать независимо от текущей раскладки клавиатуры (языка). например, пользователь может ввести тайский язык (ภาษา), а затем сохранить его, нажав «Escape» и «S» (или «:», а затем «w», стиль vim).JavaFX - get KeyEvent для символов, отличных от ASCII
Я обнаружил, что KeyEvents предоставляет неопределенный код для символов, отличных от английского (не ASCII?).
Этот код:
onKeyPressed = (k: KeyEvent) => {
println("text: " + k.text + " " + "code name: " + k.code.name)
}
дает:
text: a code name: A
text: code name: Alt << Alt + Shift switches from English to Hebrew
text: code name: Shift
text: ש code name: Undefined
при надавливании, изменения языка на иврит и нажав на него снова.
Как решить эту проблему? Как я могу узнать, какой ключ был нажат независимо от языка?
аналогичный вопрос без ответа: JavaFX KeyEvent and accented characters
Это лучше, чем я получил, но все же не позволяю мне знать, какой ключ был нажат, независимо от языка **. Поскольку я не знаю, какой язык использует пользователь, мне нужно будет изучить множество символов Юникода, чтобы идентифицировать один и тот же ключевой штрих. – user4134414