如何检查字体是否存在

时间:2013-11-08 21:41:02

标签: java fonts awt

我正在使用java.awt.Font,我怎样才能发现系统上是否安装了定义的字体?

具体来说,我有

Font font = new Font("FooBar", 0, 14);

我想发现“font”是否是系统上的有效字体,如果不可用,则默认为更通用的字体。

3 个答案:

答案 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