java - 获取字体系列的可用字体样式

标签 java fonts

我们使用

String fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();

获取可用字体的列表。我想要一个能够返回特定字体样式的方法。对于例如。 Segoe UI 有以下样式:黑色、黑色斜体、粗体、粗体斜体、浅色、常规等。

或者有没有其他方法可以实现相同的输出?

最佳答案

我认为你可以尝试这样的事情:

public static void main(String[] a)
{
    Set<String> styles = getAvailableStyles("Arial");
    System.out.println(styles);
}

public static Set<String> getAvailableStyles(String name)
{
    Set<String> styles = new HashSet<String>();
    GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
    Font[] fonts = e.getAllFonts();
    for (Font f : fonts)
    {
        if (f.getFamily().equals(name))
            styles.add(f.getName());
    }
    return styles;
}

输出:

[Arial-BoldMT, Arial-BoldItalicMT, Arial-ItalicMT, ArialMT]

问题是你不知道哪一个是粗体或斜体等,因为所有字体都有“plain”样式。仅使用名称即可。

关于java - 获取字体系列的可用字体样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21091711/

相关文章:

C# FontFamily 不显示新字体

text - 什么是合理的日语支持的最小 unicode 字符集?

java.lang.ClassNotFoundException : org. springframework.boot.SpringApplication 与 maven-jar-plugin

java - 从集合中提取信息 - 可读性还是性能?

java - 如何改进这种分层架构?

css - 字体在浏览器中变粗

cocoa - 自定义 Cocoas NSFontPanel

java - 如何在任务栏中创建简单的动画?

java - 为一堆 TextView 实现 SearchView

twitter-bootstrap - 自定义 Bootstrap 按钮字体