5

我正在使用 java.awt.Font ,如何发现定义的字体是否安装在系统上?

具体来说,我有

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

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

4

3 回答 3

10

尝试像这样循环检查你的字体:

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!");
            }
    }

}}

它应该输出“找到!” 如果它找到您的字体。

祝你好运!

于 2013-11-08T21:48:03.543 回答
2

检查它:

fonts = java.awt.GraphicsEnvironment.getAvailableFontFamilyNames();

看看结果是什么,如果它在列表中。

另见:

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

并随时阅读:

http://docs.oracle.com/javase/7/docs/api/java/awt/GraphicsEnvironment.html

java的诀窍是总是参考文档。

一开始很难读,但一旦你读下来,它是不可或缺的。

于 2013-11-08T21:45:07.003 回答
2

使用java.awt.GraphicsEnvironment.getAvailableFontFamilyNames()java.awt.GraphicsEnvironment.getAllFonts()获得java.awt.Font objects

于 2013-11-08T21:45:32.540 回答