Reputation: 4588
I'm trying to load a custom font in JavaFx css using this method
@font-face {
font-family: 'Roboto';
src: url('fonts/Roboto-Medium.ttf');
}
I've done every thing proper with the correct path but I'm getting this error
Nov 28, 2015 4:49:18 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
INFO: Could not load @font-face font [file:/C:/Users/RootUser/Desktop/Java8%20projects/RemoteViewer/out/production/JavaFxApplication/application/fonts/Roboto-Medium.ttf]
This is my project structure "screenshot"
Note I'm using intellij Idea as my IDE.Thanks in advance.
Upvotes: 1
Views: 5995
Reputation: 3294
For others who have come to this answer when searching:
The same error also occurs if you accidently leave out the quotes for the font name in a style, e.g.:
-fx-font-family: Monserrat;
is wrong, it needs to be
-fx-font-family: 'Montserrat';
Upvotes: 0
Reputation: 2617
This a bug in JavaFX (8). If there's a space in the font file's pathname, it won't load, and throw an exception, as it happened in with you.
This means that we shouldn't load fonts from a CSS file, unless we're sure the file path won't contain any spaces.
There is a better, safe way to load fonts (~first line inside main()
):
Font.loadFont(getClass().getResourceAsStream("/font.ttf"), 16);
Upvotes: 7