Java Swing GUI不';不接受重音字符
我面临着一个奇怪的问题。我的Java应用程序不接受重音字符,如é、è或è。Swing组件Java Swing GUI不';不接受重音字符,java,swing,encoding,diacritics,Java,Swing,Encoding,Diacritics,我面临着一个奇怪的问题。我的Java应用程序不接受重音字符,如é、è或è。Swing组件JTextField将其转换为e。此外,我不能插入:'' 这很奇怪,因为它不适用于打算分发给用户的已编译和打包的应用程序(JAR文件)。当我在Eclipse中执行应用程序时,一切正常:这些字符被接受 我在启动时检查了使用的VM编码。他们是不同的。打包的应用程序使用Cp1252,Eclipse以“ISO-…”开头。系统属性“file.encoding”相应地显示了相关的编码。因此,我尝试切换编码,以便在Ecli
JTextField
将其转换为e。此外,我不能插入:''
这很奇怪,因为它不适用于打算分发给用户的已编译和打包的应用程序(JAR文件)。当我在Eclipse中执行应用程序时,一切正常:这些字符被接受
我在启动时检查了使用的VM编码。他们是不同的。打包的应用程序使用Cp1252,Eclipse以“ISO-…”开头。系统属性“file.encoding”相应地显示了相关的编码。因此,我尝试切换编码,以便在Eclipse中重现该问题或在我的应用程序中修复它。但结果和以前一样
你知道发生了什么吗?好的,问题不是由Java或任何编码设置引起的。我的应用程序钩住所有关键事件。有一个组件使用了“死键”的键事件。这就是为什么编辑器组件(或JTextField)没有从事件调度器接收到关键事件。OpenJDK bug tracker中引用了一个关于Swing问题的bug:。1)“Cheers PAX”相当于4行噪音。以后不要再说了。2) 不要忘记添加Java标记。3) 如果你添加了一个标签,它就变成了“主要标签”,那么就不需要在问题标题中添加这个词了。好的,谢谢,我以后会记住的!更新:如果我按下变音字符后跟“e”,则keytyped event接收到“e”,而不带变音字符。我正要建议你发布一个SSCCE,但后来我意识到只需要几行代码就可以重现问题。我不知道如何在任何应用程序中生成重音字符。不管怎样。我正在使用基于英语的区域设置运行Windows。您能告诉我如何在记事本(或其他默认Windows软件)中生成这些字符吗?不需要删除。如果要插入死键´,则可以将windows键盘设置切换为德语布局(例如)。该键位于美式键盘布局的“+”键上。在linux上没有出现此问题。可能事件的处理顺序与windows不同。很高兴您得到了排序,感谢您报告解决方案。:)