【发布时间】:2016-03-06 07:24:24
【问题描述】:
我已经问过一个类似的问题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]
所有项目文件都在一个包中,字体文件也存在于 out>production>TeamViewer>sample>Roboto-Thin.ttf 中。我也从 jdk-8u65 升级到 jdk-8u66
谢谢,非常感谢任何帮助。
【问题讨论】:
-
你在使用maven资源过滤吗?我刚刚遇到了同样的问题,结果证明是由 Maven 过滤引起的,因为我忘记将它们排除在过滤之外。
-
@MajedAbdulaziz 非常感谢您的回复,但我没有使用 maven,我认为这不是我的原因。
-
Roboto-Thin.ttf相对于您的源文件和编译的类文件位于何处? -
@hotzst 他们都在同一个文件夹
out>production>TeamViewer>sample>Main.class和out>production>TeamViewer>sample>Roboto-Thin.ttf -
如果您将项目移动到其他位置,其中没有包含空格的路径 (
Java8%20projects),这会有所不同吗?如果您将应用程序打包到一个 jar 文件中并运行该文件会怎样?
标签: java javafx java-8 javafx-2 javafx-8