java - 如何在 javafx 中获取字体系列和字体样式?

标签 java javafx javafx-8 java-9

如果不获取一堆字体样式,我似乎无法只获取字体系列。这是我的代码,我正在考虑使用 .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 类提供 Font#getFamilies正如您可能猜到的那样,它会返回用户系统上列出的所有字体系列。

调用以下代码片段会在其下方产生以下输出:

Font.getFamilies().forEach(System.out::println);

...

Times New Roman

...

注意:Copperplate Gothic Bold 等字体仍然存在,因为它被认为是一个字体系列。

关于java - 如何在 javafx 中获取字体系列和字体样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48980181/

相关文章:

java - 监听 JList setSelectedIndex

java - 斐波那契函数的困难

java - 在 JavaFX 中的 PathTransition 方面需要帮助

java - Eclipse Neon (MAC) 中的 MySQL 出现错误 "org.eclipse.jface"

java - 由于 OSX 中的其他线程,Platform.exit() 未结束 Javafx

java - 如何在 JavaFX 中设置字体的字母间距(又名跟踪)?

java - jsp页面中这两种方法的区别

java - 为什么 DAY_OF_WEEK 多加一天?

Java 通过引用传递 boolean 列表

java - ListView 单元格变得比它们包含的节点更大