加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

JavaFx无法加载@ font-face字体,因为com.sun.javafx.css.StyleMa

发布时间:2020-12-14 05:24:35 所属栏目:Java 来源:网络整理
导读:我已经问了一个类似的问题 here,但似乎不清楚,因为我有很多代码在项目中,不能发布在这里所以请不要标记为重复. 因此,我决定创建一个新的项目,只需一个标签,使代码小而干净,并消除其他潜在的嫌疑犯我得到的错误. 所以这里是我的Java源代码 public class Main
我已经问了一个类似的问题 here,但似乎不清楚,因为我有很多代码在项目中,不能发布在这里所以请不要标记为重复.

因此,我决定创建一个新的项目,只需一个标签,使代码小而干净,并消除其他潜在的嫌疑犯我得到的错误.

所以这里是我的Java源代码

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Group root = new Group();

        Label label = new Label("Sample Label");
        label.setId("sampleLabel");
        root.getChildren().add(label);

        Scene scene = new Scene(root,300,275);
        scene.getStylesheets().add(getClass().getResource("applicationStyles.css").toExternalForm());
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

这是我的css文件

/**/
@font-face {
    font-family:'Roboto';
    src:url("Roboto-Thin.ttf");
}
#sampleLabel{
    -fx-font-family: Roboto ;
}

这是我在Intellij Idea中遇到的错误

Dec 02,2015 9:16:34 AM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
INFO: Could not load @font-face font [file:/C:/Users/UserName/Desktop/Java8%20projects/TeamViewer/out/production/TeamViewer/sample/Roboto-Thin.ttf]

All the project files are in one package and the font file is also present in the out>production>TeamViewer>sample>Roboto-Thin.ttf. I also upgraded from jdk-8u65 to jdk-8u66

谢谢,非常感谢任何帮助.

解决方法

我找到了可能的原因和解决办法:
在引擎盖下,css-loader使用Font.loadFont函数将字体加载到CSS中.
Font.loadFont如果失败,则返回null,这给出了“警告”.

似乎这个功能不能用它的路径/ url-string.
因此,您需要解决路径,然后将其替换为空格.
这意味着您必须使用代码加载字体代替CSS(现在).

在Clojure,我的工作如下所示:

(require '[clojure.java.io :as cio])
(require '[clojure.string :as s])
(-> "fonts/SourceCodePro-Regular.ttf" 
  cio/resource 
  str 
  (s/replace "%20" " ") 
  (javafx.scene.text.Font/loadFont  10.))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读