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

时间:2017-01-20 18:33:58

标签: css eclipse javafx nullpointerexception getresource

项目结构:

Project Structure

我目前正在Eclipse中开发JavaFX应用程序,而且我在从resources文件夹加载.css样式表时遇到问题。

我已将资源文件夹添加到类路径中(项目属性 - > 来源 - > 添加文件夹

正在使用以下代码:

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;
}

1 个答案:

答案 0 :(得分:0)

最后让它与外部.css一起工作,显然 JavaFX CSS解析器 不允许 @charset "utf-8"或任何@ anotation。它没有任何警告。

解决方案:

更改此内容:

@charset"utf-8";

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

对此:

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