语言:JavaFX
IDE:Netbeans
问题:我正在尝试将CSS文件添加到样式表,但是以下代码的第一行始终会生成NullPointerException
:
String css = this.getClass().getResource("double_slider.css").toExternalForm();
scene.getStylesheets().add(css);
我尝试用完整路径替换“ double_slider.css”。目前,double_slider.css与进行此调用的类位于同一软件包中。我也尝试了在http://introjava.wordpress.com/2012/03/21/linking-a-css-style-sheet-to-javafx-scene-graph/中找到的所有变体,但均未成功。清理和构建也无济于事。
如果将css文件放在转储.class文件的生成文件夹中,则NullPointerException消失。但是,css文件无法正常工作,因为它引用了我项目中的其他文件。
将yourname.css
文件直接放在src
非常简单。
在您的文件。java
假设文件结构是这样的:-根--src-资源---- double_slider.css - -包---- JavaFXFile.java
scene.getStylesheets().add("file:///home/fullpathname/file.css");
所有答案都缺少一个非常重要的部分,并且在css文件名称之前是'/
':尝试将'@'放在文件名中。它为我工作。
例如:'@ main.css'
.root {
/* background color for selected checkbox */
-fx-background-color:white;
}
.check-box:selected > .box {
/* background color for selected checkbox */
-fx-background-color: lime;
}
.check-box > .box {
/* background color of unselected checkbox */
-fx-background-color:grey;
}
.check-box:selected > .box > .mark,
.check-box:indeterminate > .box > .mark {
/* modify mark color */
-fx-background-color: blue;
}
我认为您没有使用导致无法找到CSS文件的斜线。尝试更正您的路径参考。
我有同样的问题。我在Win7上使用NetBeans 7.3和JavaFX 2.2.7,JDK 7.0_21。
我有同样的问题(在NetBeans 8中)。我在这里找到了解决方案:https://blog.idrsolutions.com/2014/04/use-external-css-files-javafx/
您可以直接在您的.fxml文件中将style.css添加为根元素的属性,就像此stylesheets =“ @ your_relative_path / style.css”。
考虑您的旧代码:
我做了一个小的登录示例,这就是我链接styleshet.css的方式
嗯,你在Netbeans上吗?尝试“ Clean and Build
您是否在设置样式表之前初始化了场景对象?