在 JavaFX(实际上是 ScalaFX)应用程序中,我想允许用户通过一系列键盘键调用命令。无论当前的键盘布局(语言)如何,这些命令都应该可以工作。例如,用户可能正在输入泰语(ภาษา),然后想要通过按“Escape”而不是“S”(或“:”然后按“w”,vim 样式)来保存。
我发现 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
按 A 时,将语言更改为希伯来语并再次按下。
我该如何克服这个问题?无论语言如何,我如何知道按下了哪个键?
类似的未回答问题:JavaFX KeyEvent 和重音字符