项目结构:
我正在使用Eclipse开发JavaFX应用程序,但无法从资源文件夹中加载.css样式表。
我已经将资源文件夹添加到了类路径中(项目属性 -> 源 -> 添加文件夹)
以下代码正在使用:
this.getStylesheets().add(getClass().getResource("/CSS/application-container.css").toExternalForm());
getResource()
抛出 NullPointerException,我已经阅读了其他帖子并尝试了所有方法,但似乎无法使其正常工作。
编辑:通过删除并恢复 bin 文件夹,我设法使其正常工作。现在 .css 已加载,但由于某种原因未应用,但使用相同内容的 javaFX 方法 .setStyle(...)
,它可以正常工作。
private void buildHeader() {
this.header.setId("header-container");
this.getStylesheets().add(getClass().getResource("/CSS/application-container.css").toExternalForm());
// this.header.setStyle("-fx-background-color: #7b9bce;"); this way works
}
CSS:
@charset"utf-8";
#header-container {
-fx-background-color: #7b9bce;
}
this
指的是什么? - Bo HalimgetClass().getResource("/CSS/application-container.css")
返回的不是null吗?(也就是说,你不是从其他地方得到了npe)。尝试使用System.out.println(getClass().getResource(...))
进行检查。 - James_D