如何在javafx中获得字体系列和字体样式?

如何在javafx中获得字体系列和字体样式?,java,javafx,javafx-8,java-9,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

如果没有一堆字体样式,我似乎无法只获得字体系列。这是我的代码,我正在考虑使用.contains来分离它们,以检查是否有轻、粗、斜体,但这不是很有效

for(String font : Font.getFontNames()){
            if(font.toLowerCase().contains("light") || font.contains("extrabold") || font.contains("extralight") || font.contains("light")){

            }

        fontsList.add(font);
        }
我的显示器是这样的: 新罗马时代

泰晤士报新罗马黑体版

时代新罗马粗体斜体

泰晤士报新罗马斜体


但是我只想显示Time New Roman,所以只显示字体系列。

javafx.scene.text.font类提供,您可能会猜到,它返回用户系统上列出的所有字体系列

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

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

新罗马时代


注意:像
铜版哥特式粗体
这样的字体仍然存在,因为这被认为是一个字体系列。

无法理解您共享的代码实际上在做什么。如果循环中有空的
if
,则Esp。