gpt4 book ai didi

JavaFX KeyEvent 和重音字符

转载 作者:搜寻专家 更新时间:2023-11-01 03:40:46 24 4
gpt4 key购买 nike

我在 JavaFX 中使用带有内容可编辑主体的 WebView 作为富文本编辑器。它工作正常,但我需要听按键。它适用于回车键和 ASCII 字符,但重音字符(如冰岛语 á 和 é)不会触发任何事件。我尝试了 KeyEvent.KEY_PRESSED 和 KeyEvent.KEY_TYPED,但它们都不会触发重音字符。

InputMethodEvent 确实会为重音字符触发,但如果我为此设置一个监听器,它似乎会自动使用事件并且不会到达编辑器。

有人知道在输入不消耗重音字符时监听事件的方法,或者知道不消耗 InputMethodEvent 中的字符的方法吗?

最佳答案

您可以使用 Node.addEventHandler 将 KeyEvent EventHandler 添加到任何节点(在本例中为您的 WebView)方法,如果您处理 EventType KeyEvent.KEY_TYPED,您可以获得带有 KeyEvent.getCharacter 的键入 unicode 字符方法。看这个例子:

WebView myWebView = new WebView();
myWebView.addEventHandler(KeyEvent.KEY_TYPED,
new EventHandler<KeyEvent>()
{
@Override
public void handle(KeyEvent event)
{
System.out.println("Unicode character typed: "+event.getCharacter());

switch (event.getCharacter())
{
case "á":
System.out.println("Typed accented a");
break;
case "é":
System.out.println("Typed accented e");
break;
case "í":
System.out.println("Typed accented i");
break;
case "ó":
System.out.println("Typed accented o");
break;
case "ú":
System.out.println("Typed accented u");
break;
default:
System.out.println("Typed other key " + event.getCode());
break;
}
}

});

您可能想看一下 Collator如果您想比较不同的字符串而忽略区域设置、大写字母、小写字母等,则使用该类。如果您想将“á”和“a”视为相等,它可能会很有用。

祝你好运!

关于JavaFX KeyEvent 和重音字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com