Java Locale字体问题..?

时间:2009-05-21 22:16:41

标签: java fonts locale

[编辑]这个在OSX上用Java 1.5发生! (但也可能发生在Windows上!)

我的Java Swing程序的日本用户似乎无法在JTextFields中编写日语符号。实际上他们可以写出来但却看不到它们。他们只看到以某种方式表示我认为字体不支持这些符号的块。

我出于各种原因设置了自己的字体(“Lucida Sans”,Font.PLAIN,12) - 我不想改变。我的问题是:

  1. 如果没有我设置此字体,JTextFields会显示日语符号吗?

  2. 我可以检测到我的Font完全支持哪些Locale并且仅在这些情况下设置它,但是为Locale.Japan等所有其他情况保留标准Java字体?

  3. 您还有其他建议吗?

  4. 感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

  

如果没有我设置此字体,JTextFields会显示日语符号吗?

最有可能因为JRE会选择默认值。

  

我可以检测到我的Font完全支持哪些Locale,并且仅在这些情况下设置它,但是为Locale.Japan等所有其他情况保留标准Java字体?

是的,从理论上讲,虽然更容易测试此字体是否可以使用Font中的canDisplay(char)方法显示特定于语言环境的字符。如果没有,您可以切换到默认值。

  

您还有其他建议吗?

Here's a link on this topic that may help

您的产品有链接吗?

答案 1 :(得分:2)

由于这个原因,我的国际化应用程序根据区域设置设置其字体。回答你的问题:

  1. 这可能取决于使用的Windows版本。这是安装了日文字体的美国版,还是在日本销售的版本?我不知道你问题的确切答案,但我希望答案是“这取决于。”

  2. 我不知道有任何标准方法可以做到这一点。我找到了一个很好的实用工具来调查这种事情:BabelMap。这将告诉您任何给定字体确切支持哪些字符。

  3. 其他建议:根据区域设置设置字体,至少选择区域设置。