我正在使用java.awt.Font,我怎样才能发现系统上是否安装了定义的字体?
具体来说,我有
Font font = new Font("FooBar", 0, 14);
我想发现“font”是否是系统上的有效字体,如果不可用,则默认为更通用的字体。
答案 0 :(得分:7)
尝试在循环中检查字体,如下所示:
public class SO2 {
public static void main(String args[]) {
GraphicsEnvironment g= null;
g=GraphicsEnvironment.getLocalGraphicsEnvironment();
String []fonts=g.getAvailableFontFamilyNames();
for (int i = 0; i < fonts.length; i++) {
System.out.println(fonts[i]);
if(fonts[i].equals("YOUR FONT")){
System.out.println("Found!");
}
}
}}
应该输出“Found!”如果它找到你的字体。
祝你好运!
答案 1 :(得分:1)
检查:
fonts = java.awt.GraphicsEnvironment.getAvailableFontFamilyNames();
看看会出现什么,以及它是否在列表中。
另见:
How to find, with Java, if a certain font is installed correctly on a machine
随时阅读:
http://docs.oracle.com/javase/7/docs/api/java/awt/GraphicsEnvironment.html
java的技巧是始终参考文档。
一开始很难读,但是一旦你把它弄下来,它就是不可或缺的。答案 2 :(得分:1)
使用java.awt.GraphicsEnvironment.getAvailableFontFamilyNames()
或java.awt.GraphicsEnvironment.getAllFonts()
获取java.awt.Font objects