Как установить пользовательские шрифты из 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';
}
Если я установлю шрифт на что-то, что присутствует в моей системе, я могу видеть, что шрифт меняется, но тот, который включен мной, не работает.
Что я делаю не так?
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