JavaFX 从资源文件夹加载 CSS 样式

JavaFX loading CSS style from resources folder

项目结构:

我目前正在 Eclipse 中开发 JavaFX 应用程序,但无法从资源文件夹加载 .css 样式表。

我已经将资源文件夹添加到类路径中 (Project Properties -> Source -> Add文件夹)

正在使用以下代码:

this.getStylesheets().add(getClass().getResource("/CSS/application-container.css").toExternalForm());

getResource() 抛出 NullPointerException 我已阅读其他帖子并尝试了所有方法,但似乎无法正常工作。

编辑: 通过删除和恢复 bin 文件夹设法让它工作。现在 .css 已加载,但由于某种原因它没有被应用,但是使用具有与 .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;
}

终于让它与外部一起工作了。css,显然 JavaFX CSS 解析器 不允许 @charset "utf-8" 或任何 @ 注释。它没有显示任何警告。

解决方案:

改变这个:

@charset"utf-8";

#header-container {
    -fx-background-color: #7b9bce;
}

为此:

#header-container {
    -fx-background-color: #7b9bce;