1

我正在开发一个 JavaFX 项目。我想在LabelCSS 文件中使用自定义字体。我已经阅读并关注了例如。这篇文章。

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;
}

选择器运行良好(它指的是 a Label),如果我更改-fx-font-size. 但是字体系列仍然是默认的系统字体。我究竟做错了什么?

4

1 回答 1

0

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

于 2016-11-07T23:00:39.120 回答