如何使用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)