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]
谢谢,非常感谢任何帮助. 解决方法
我找到了可能的原因和解决办法:
在引擎盖下,css-loader使用Font.loadFont函数将字体加载到CSS中. Font.loadFont如果失败,则返回null,这给出了“警告”. 似乎这个功能不能用它的路径/ url-string. 在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.))
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |