获取字体系列的可用字体样式
Posted
技术标签:
【中文标题】获取字体系列的可用字体样式【英文标题】:Get Available font styles for font family 【发布时间】:2014-01-13 12:47:32 【问题描述】:我们使用
String fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
获取可用字体列表。我想要一种能够返回特定字体样式的方法。例如。 Segoe UI 提供以下样式:黑色、黑色斜体、粗体、粗体斜体、浅色、常规等。
或者有没有其他方法可以实现相同的输出?
【问题讨论】:
【参考方案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]
问题是您不知道哪个是粗体或斜体等,因为所有字体都有“纯”样式。仅使用名称有效。
【讨论】:
以上是关于获取字体系列的可用字体样式的主要内容,如果未能解决你的问题,请参考以下文章