Как установить пользовательские шрифты из css в JavaFX?



Я добавил пользовательский шрифт в свой проект в папке src/main/resources (RobotoMono.ttf). Затем я пытаюсь загрузить его из моего css-файла следующим образом:



@font-face {
font-family: 'RobotoMono';
src: url('RobotoMono.ttf');
}


Но когда я пытаюсь установить этот шрифт на что-то, он не работает:



.column-header-label {
-fx-label-padding: 0;
-fx-text-overrun: clip;
-fx-font-family: 'RobotoMono';
}


Если я установлю шрифт на что-то, что присутствует в моей системе, я могу видеть, что шрифт меняется, но тот, который включен мной, не работает.



Что я делаю не так?

716   3  

3 ответов:

В css необходимо указать шрифт-грань с url-адресом. Затем в элементе css вы должны использовать имя шрифта из файла ttf, а не имя самого файла шрифта. Например, если вы откроете файл ttf из Windows, вы увидите "Roboto Mono".

@font-face {
    src: url('RobotoMono.ttf');
}

.column-header-label {
    -fx-label-padding: 0;
    -fx-text-overrun: clip;
    -fx-font-family: 'Roboto Mono';
}

Вы объявили, где существует шрифт, используя свойство src:

src: url('RobotoMono.ttf');

Это инструкция по поиску RobotoMono.ttf в той же папке, где существует файл CSS. Если вы создали приложение JavaFX с помощью Maven, файлы стилей должны быть в

Src / main / resources / styles

Поэтому убедитесь, что структура папок проекта выглядит следующим образом:

Структура папок проектов

Просто добавьте шрифт в библиотеки путей сборки java например, в eclipse вы должны right click on the project->properties->java build path->add JARs, а затем добавить свой шрифт ttf. после того, как вы сделаете это, вам нужно просто добавить строку ниже к вашему css

-fx-font-family: 'name of the font you have added to library without .tff';

Убедитесь, что ваш шрифт ttf находится в папке вашего проекта

Comments

    Ничего не найдено.