我们使用
String fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
获取可用字体列表。我想要一个能够返回特定字体样式的方法。对于Eg。 Segoe UI有以下几种款式可供选择:Black,Black Italic,Bold,Bold Italic,Light,Regular等。
或者有没有其他方法可以实现相同的输出?
答案 0 :(得分:2)
我想你可以尝试这样的事情:
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]
问题是你不知道哪一个是粗体或斜体等,因为所有字体的样式都是“普通”。只使用名称有效。