[编辑]这个在OSX上用Java 1.5发生! (但也可能发生在Windows上!)
我的Java Swing程序的日本用户似乎无法在JTextFields中编写日语符号。实际上他们可以写出来但却看不到它们。他们只看到以某种方式表示我认为字体不支持这些符号的块。
我出于各种原因设置了自己的字体(“Lucida Sans”,Font.PLAIN,12) - 我不想改变。我的问题是:
如果没有我设置此字体,JTextFields会显示日语符号吗?
我可以检测到我的Font完全支持哪些Locale并且仅在这些情况下设置它,但是为Locale.Japan等所有其他情况保留标准Java字体?
您还有其他建议吗?
感谢您的帮助!
答案 0 :(得分:3)
如果没有我设置此字体,JTextFields会显示日语符号吗?
最有可能因为JRE会选择默认值。
我可以检测到我的Font完全支持哪些Locale,并且仅在这些情况下设置它,但是为Locale.Japan等所有其他情况保留标准Java字体?
是的,从理论上讲,虽然更容易测试此字体是否可以使用Font中的canDisplay(char)方法显示特定于语言环境的字符。如果没有,您可以切换到默认值。
您还有其他建议吗?
Here's a link on this topic that may help
您的产品有链接吗?
答案 1 :(得分:2)
由于这个原因,我的国际化应用程序根据区域设置设置其字体。回答你的问题:
这可能取决于使用的Windows版本。这是安装了日文字体的美国版,还是在日本销售的版本?我不知道你问题的确切答案,但我希望答案是“这取决于。”
我不知道有任何标准方法可以做到这一点。我找到了一个很好的实用工具来调查这种事情:BabelMap。这将告诉您任何给定字体确切支持哪些字符。
其他建议:根据区域设置设置字体,至少选择区域设置。