2009-05-21 65 views
3

[编辑]在OSX上发生这种事情与Java 1.5! (但也可能发生在Windows上!)Java语言环境字体问题..?

看来我的Java Swing程序的日本用户不能在JTextFields中写日文符号。其实他们可以写,但没有看到它们。他们只看到块以某种方式表明我认为该字体不支持这些符号。

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

  1. 将JTextFields显示日语符号没有我设置此字体?

  2. 我可以检测哪些语言环境完全由我的字体支持,并只在这些情况下设置它,但保留所有其他情况下的标准Java字体,如Locale.Japan?

  3. 你有什么建议吗?

谢谢你的帮忙!

回答

2

出于这个原因,我的国际化应用程序根据语言环境设置其字体。回答您的问题:

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

  2. 我不知道有任何标准的方法来做到这一点。我发现了一个很好的工具来调查这种事情:BabelMap。这会告诉你到底哪些字符被任何给定的字体支持。

  3. 其他建议:根据语言环境设置字体,至少对于选择的语言环境。

+0

OSX上的Java 1.5发生这种情况! (但也可能发生在Windows上)。 – 2009-05-21 22:41:58

+0

在BabelMap中 - 与日文符号对应的Unicode块名称是什么? – 2009-05-21 23:31:32

3

将JTextFields将显示没有我设置这个字体符号的日本?

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

可我发现它的语言环境是由我的字体完全支持,只设置在这些情况下,但留下了标准的Java字体为所有其他情况下,像Locale.Japan?

是,在理论上,虽然容易将测试是否该字体可以使用该方法canDisplay(char)在字体显示区域设置特定的字符。如果没有,您可以切换到默认值。

你有什么建议吗?

Here's a link on this topic that may help

你有一个链接,你的产品?