无法设置自定义字体
Can't set custom font
我正在处理 JavaFX 项目。我想在 CSS 文件中的 Label
上使用自定义字体。我已经阅读并关注了例如。 this post.
public class Main extends Application {
@Override
public void init() {
Font font = Font.loadFont(getClass().getResourceAsStream("Dimitri_Swank.ttf"), 32);
System.out.println(font);
}
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Window.fxml"));
// ...
}
}
打印Font[name=Dimitri Swank, family=Dimitri Swank, style=Regular, size=32.0]
,字体加载成功。 FXML文件中的根容器有一个stylesheets="@Window.css"
属性,而在这个CSS文件中,有一个规则:
#gameName {
-fx-font-family: Dimitri Swank;
-fx-font-size: 32px;
}
选择器很好用(它指的是Label
),如果我更改-fx-font-size
,我可以看到不同之处。但是字体系列仍然是默认的系统字体。我做错了什么?
从 JavaFX version 1.8u60
开始,您可以使用普通的 css 来加载字体,但要小心,您需要使用 Font File
的原始名称,例如:
@font-face{
src: url("../fonts/Younger than me Bold.ttf");
}
.button{
-fx-background-color:white;
-fx-background-radius:15.0;
-fx-font-size:18.0;
-fx-font-family:"Younger than me";
-fx-text-fill:black;
-fx-font-weight:bold;
}
提到可以找到原始名称,使用默认编辑器打开 .ttf
并查看它的名称,以防您不知道它。
完成教程:http://www.guigarage.com/2014/10/integrate-custom-fonts-javafx-application-using-css/
也看看这里你的情况:Specifying external font in JavaFX CSS
最后:
您的代码中的问题是,在 css 中,您没有在 font - family
周围添加双引号 "
或单引号 '
我正在处理 JavaFX 项目。我想在 CSS 文件中的 Label
上使用自定义字体。我已经阅读并关注了例如。 this post.
public class Main extends Application {
@Override
public void init() {
Font font = Font.loadFont(getClass().getResourceAsStream("Dimitri_Swank.ttf"), 32);
System.out.println(font);
}
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Window.fxml"));
// ...
}
}
打印Font[name=Dimitri Swank, family=Dimitri Swank, style=Regular, size=32.0]
,字体加载成功。 FXML文件中的根容器有一个stylesheets="@Window.css"
属性,而在这个CSS文件中,有一个规则:
#gameName {
-fx-font-family: Dimitri Swank;
-fx-font-size: 32px;
}
选择器很好用(它指的是Label
),如果我更改-fx-font-size
,我可以看到不同之处。但是字体系列仍然是默认的系统字体。我做错了什么?
从 JavaFX version 1.8u60
开始,您可以使用普通的 css 来加载字体,但要小心,您需要使用 Font File
的原始名称,例如:
@font-face{
src: url("../fonts/Younger than me Bold.ttf");
}
.button{
-fx-background-color:white;
-fx-background-radius:15.0;
-fx-font-size:18.0;
-fx-font-family:"Younger than me";
-fx-text-fill:black;
-fx-font-weight:bold;
}
提到可以找到原始名称,使用默认编辑器打开 .ttf
并查看它的名称,以防您不知道它。
完成教程:http://www.guigarage.com/2014/10/integrate-custom-fonts-javafx-application-using-css/
也看看这里你的情况:Specifying external font in JavaFX CSS
最后:
您的代码中的问题是,在 css 中,您没有在 font - family
"
或单引号 '