如何在 javafx 中获取字体系列和字体样式?
How can I get the fonts family and font styles in javafx?
如果不获取一堆字体样式,我似乎无法只获取字体系列。这是我的代码,我正在考虑使用 .contains 将它们分开以检查浅色、粗体、斜体,但这不是很有效。
for(String font : Font.getFontNames()){
if(font.toLowerCase().contains("light") || font.contains("extrabold") || font.contains("extralight") || font.contains("light")){
}
fontsList.add(font);
}
我的显示是这样的:
时代新罗马
Times New Roman 粗体
Times New Roman 粗斜体
Times New Roman Italic
但我只想显示 Time New Roman,所以只显示字体系列。
javafx.scene.text.Font
class 提供 Font#getFamilies
,您可能猜到了,returns 用户系统上列出的所有字体系列。
调用以下代码片段会在其下方生成以下输出:
Font.getFamilies().forEach(System.out::println);
...
Times New Roman
...
注意:像Copperplate Gothic Bold
这样的字体仍然存在,因为它被认为是一个字体家族。
如果不获取一堆字体样式,我似乎无法只获取字体系列。这是我的代码,我正在考虑使用 .contains 将它们分开以检查浅色、粗体、斜体,但这不是很有效。
for(String font : Font.getFontNames()){
if(font.toLowerCase().contains("light") || font.contains("extrabold") || font.contains("extralight") || font.contains("light")){
}
fontsList.add(font);
}
我的显示是这样的: 时代新罗马
Times New Roman 粗体
Times New Roman 粗斜体
Times New Roman Italic
但我只想显示 Time New Roman,所以只显示字体系列。
javafx.scene.text.Font
class 提供 Font#getFamilies
,您可能猜到了,returns 用户系统上列出的所有字体系列。
调用以下代码片段会在其下方生成以下输出:
Font.getFamilies().forEach(System.out::println);
...
Times New Roman
...
注意:像Copperplate Gothic Bold
这样的字体仍然存在,因为它被认为是一个字体家族。