我有一台运行Win Vista的PC笔记本,当我第一次购买它时,某些中文字体不会显示,我只能看到矩形,但我玩了一段时间的控制设置,改变了一些属性,现在它正确显示中文字体,但我不记得我做了什么。
现在我的一些程序显示英文和中文,如下所示:“输入|输入”(这里的中文也意味着输入),但如果用户没有在他的机器上正确安装中文字体,他将会看到这样的事情:“输入| [] []”,我的问题是:在Java中如何检测这些字符是否会在某台机器上正确显示,如果没有,只显示“Enter”,如果是,则显示“输入|输入“。
谢
答案 0 :(得分:8)
java.awt.GraphicsEnvironment.getAvailableFontFamilyNames()
可以为您提供当前系统上安装的可用字体列表。您还可以使用java.awt.GraphicsEnvironment.getAllFonts()
来获取java.awt.Font
个对象。
然后,您可以使用java.awt.Font.canDisplay(int)
检查Unicode字符是否可以以该字体显示(其中int
是多字节字符的整数表示形式)。
答案 1 :(得分:1)
懒人版:
Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()).contains(FONT_NAME)