我有一台PC笔记本运行Windows Vista中,当我第一次买了它,某些中国字体不会表现出来,我只能看到矩形,但我打的控制设置了一会,改变了一些特性,现在它正确地显示了中国的字体,但我不记得我做过什么。

现在我的一些程序显示英语和中国,这样的事情:“输入|输入”(中国人在这里也意味着进入),但如果用户没有自己的机器上正确安装的字体中国,他将看到这样的内容:“输入| [] []”,我的问题是:在Java中如何检测,如果这些字符将正确显示某台机器上,如果没有,只是显示“输入”,如果是,秀“输入|。输入”

有帮助吗?

解决方案

java.awt.GraphicsEnvironment.getAvailableFontFamilyNames()可以给你安装在当前系统上可用的字体列表。你也可以使用java.awt.GraphicsEnvironment.getAllFonts()获得java.awt.Font对象。

然后,可以使用java.awt.Font.canDisplay(int)检查是否Unicode字符可在该字体(其中int是多字节字符的整数表示)被显示。

其他提示

懒惰版本:

Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()).contains(FONT_NAME)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top