Как я могу получить семейство шрифтов и стили шрифтов в 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 Bold Italic

Times New Roman Italic

Но я хочу отображать только Time New Roman, поэтому только семейство шрифтов.


person PunkKDB    schedule 26.02.2018    source источник
comment
Не в состоянии понять, что на самом деле пытается сделать ваш общий фрагмент кода. Esp с этим пустым if внутри цикла.   -  person Naman    schedule 26.02.2018


Ответы (1)


Класс javafx.scene.text.Font предлагает Font#getFamilies который, как вы можете догадаться, возвращает все семейства шрифтов, перечисленные в системе пользователя.

Вызов следующего фрагмента приводит к следующему выводу под ним:

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

...

Таймс Нью Роман

...

Примечание. Такие шрифты, как Copperplate Gothic Bold, все еще существуют, так как он считается семейством шрифтов.

person Jacob G.    schedule 26.02.2018