我们使用
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/