如何使用Java查找是否在计算机上正确安装了某种字体
我有一台运行Win Vista的PC笔记本,当我第一次购买它时,某些中文字体不会出现,我只能看到矩形,但我玩控制设置一段时间,更改了一些属性,现在它显示中文字体正确,但我不记得我做了什么。
现在我的一些程序显示英文和中文,如下所示:“输入|输入”(这里的中文也意味着输入),但如果用户没有在他的机器上正确安装中文字体,他会看到像这个:“输入| [] []”,我的问题是:在Java中如何检测这些字符是否会在某台机器上正确显示,如果没有,只显示“Enter”,如果是,则显示“Enter |输入”。
坦率
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)