Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing GUI不';不接受重音字符_Java_Swing_Encoding_Diacritics - Fatal编程技术网

Java Swing GUI不';不接受重音字符

Java Swing GUI不';不接受重音字符,java,swing,encoding,diacritics,Java,Swing,Encoding,Diacritics,我面临着一个奇怪的问题。我的Java应用程序不接受重音字符,如é、è或è。Swing组件JTextField将其转换为e。此外,我不能插入:'' 这很奇怪,因为它不适用于打算分发给用户的已编译和打包的应用程序(JAR文件)。当我在Eclipse中执行应用程序时,一切正常:这些字符被接受 我在启动时检查了使用的VM编码。他们是不同的。打包的应用程序使用Cp1252,Eclipse以“ISO-…”开头。系统属性“file.encoding”相应地显示了相关的编码。因此,我尝试切换编码,以便在Ecli

我面临着一个奇怪的问题。我的Java应用程序不接受重音字符,如é、è或è。Swing组件
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不同。很高兴您得到了排序,感谢您报告解决方案。:)