gpt4 book ai didi

java - 如何从 Java 获取字体名称列表

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:37 25 4
gpt4 key购买 nike

在 Java 中,我们可以这样创建一个 Font 对象:

new Font("Helvetica", Font.PLAIN, 12);

我的问题是我们如何从 Java 中获取完整的字体名称列表,例如“Helvetica”,我们可以将其用作字体构造函数的参数之一?

我尝试了以下方法,但在所有列表中都找不到“Helvetica”。

    GraphicsEnvironment ge;  
ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

String[] names = ge.getAvailableFontFamilyNames();
Font[] allFonts = ge.getAllFonts();

for(int x=0; x<names.length; x++)
System.out.println(names[x]);

for(int x=0; x<allFonts.length; x++){
System.out.println(allFonts[x].getName());
System.out.println(allFonts[x].getFontName());
System.out.println(allFonts[x].getFamily());
System.out.println(allFonts[x].getPSName());
}

编辑:更重要的是,我还想知道Font构造函数中第一个属性调用是什么new Font("What attribute is this?", Font.PLAIN, 12)

问:是 fontName、family、fontFace、name 还是什么?

最佳答案

在您的系统上,该字体很可能被映射到其他字体

Font helvetica = new Font("Helvetica", Font.PLAIN, 12);
System.out.println(helvetica.getFontName(Locale.US));

我明白了

SansSerif.plain

要输出所有本地字体的名称,您可以使用类似的东西

GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();

Font[] allFonts = ge.getAllFonts();

for (Font font : allFonts) {
System.out.println(font.getFontName(Locale.US));
}

关于java - 如何从 Java 获取字体名称列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28787157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com