Загрузка шрифта .ttf в JavaFX в Windows имеет пикселизацию

#java #css #javafx #fonts

Вопрос:

Я пытаюсь загрузить шрифт .ttf в свое приложение JavaFX. Это моя структура проекта:

 main
- java
- - Application.java
- resources
- - fonts
- - - static
- - - - Raleway-Thin.ttf
- - - - Ralewy-Regular.ttf
- - - - ...
- - - Raleway-VairableFont_wght.ttf
- - main.css
 

В Linux все работало нормально при загрузке статических шрифтов start(Stage stage) вот так:

 Font.loadFont(getClass.getResourceAsStream("fonts/static/Raleway-Thin.ttf"), 12);
... //Here I load all types I need
 

и ссылаться на них main.css вот так:

 .button {
    -fx-font-family: 'Raleway Thin', sans-serif;
}
 

В Windows шрифт выглядит плохо:

Пример Windows

Он действительно загружает шрифт, он действительно полужирный, но выглядит очень некрасиво.

Я попробовал следующее и с удовольствием расскажу обо всем более подробно, если это необходимо:

  • Загрузите переменную Font_wgth с Font.loadFonts(...) помощью . Это был бы лучший способ, но он загружается только Raleway Thin при этом. Думаю, для этого мне понадобится .ttc файл. Кроме того, он по-прежнему имеет пикселизацию.
  • Я попробовал использовать тег css @font-face . Это не решило проблему с пикселизированным текстом.
  • Я попытался изменить второй аргумент size Font.loadFont() , я действительно не понимаю его цели, даже после прочтения документации.

Что может вызвать это и как я могу это решить? Я не могу полагаться на то, что пользователь установил шрифт в системе.