【问题标题】:Get Available font styles for font family获取字体系列的可用字体样式
【发布时间】:2014-01-13 12:47:32
【问题描述】:

我们使用

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

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

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

【问题讨论】:

    标签: java fonts


    【解决方案1】:

    我想你可以试试这样的:

    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]
    

    问题是您不知道哪个是粗体或斜体等,因为所有字体都有“纯”样式。仅使用名称有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 2019-11-14
      相关资源
      最近更新 更多