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;
项目结构:
我目前正在 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;