如何找到与Java中,如果某种字体已正确安装在机器上
题
我有一台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)
不隶属于 StackOverflow