如何使用Java查找是否在计算机上正确安装了某种字体

Fra*_*ank 10 java fonts detect

我有一台运行Win Vista的PC笔记本,当我第一次买它时,某些中文字体不会出现,我只能看到矩形,但是我用控制设置播放了一段时间,改了一些属性,现在它显示了中文字体正确,但我不记得我做了什么.

现在我的一些程序显示英文和中文,如下所示:"输入|输入"(这里的中文也意味着输入),但如果用户没有在他的机器上正确安装中文字体,他会看到像这个:"输入| [] []",我的问题是:在Java中如何检测这些字符是否会在某台机器上正确显示,如果没有,只显示"Enter",如果是,则显示"Enter | Enter into ".

坦率

amp*_*ine 8

java.awt.GraphicsEnvironment.getAvailableFontFamilyNames()可以为您提供当前系统上安装的可用字体列表.您还可以使用java.awt.GraphicsEnvironment.getAllFonts()获取java.awt.Font对象.

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

  • @advocate通常Java不安装字体(实际上,Oracle JRE有几种捆绑字体).您的应用程序可以捆绑其他字体并使用它们.请参阅[如何在Java中使用自定义字体?](http://stackoverflow.com/a/5652385/572834)和[如何导入字体?](http://stackoverflow.com/a/8365030/572834)了解更多信息.答案中的代码允许您:1)检查系统上是否有某种字体,以及2)检查字体是否可以显示特定字符​​. (2认同)