Swing GUI不接受重音字符

时间:2013-11-28 07:28:46

标签: java swing encoding diacritics

我遇到了一个奇怪的问题。我的Java应用程序不接受重音字符,如é,è或ê。 Swing组件JTextField将其转换为e。此外,我无法插入:'

这很奇怪,因为它不适用于分发给用户的编译和打包应用程序(JAR文件)。当我在Eclipse中执行我的应用程序时,一切正常:这些字符被接受。

我在启动时检查了使用过的VM编码。他们是不同的。打包的应用程序使用Cp1252,Eclipse以“ISO -...”启动它。系统属性“file.encoding”相应地显示了相关的编码。因此,我尝试切换编码,以便在Eclipse中重现问题或在我的应用程序中修复它。但结果和以前一样。

你知道发生了什么吗?

2 个答案:

答案 0 :(得分:1)

好的,问题不是由Java或任何编码设置引起的。我的应用程序挂钩所有关键事件。有一个组件消耗了“死键”的关键事件。这就是编辑器组件(或JTextField)没有从事件调度程序接收密钥事件的原因。

答案 1 :(得分:0)

在OpenJDK错误跟踪器中引用了一个关于Swing问题的错误:https://bugs.openjdk.java.net/browse/JDK-8064448