将css文件添加到javafx中的样式表中

问题描述 投票:12回答:17

语言:JavaFX

IDE:Netbeans

问题:我正在尝试将CS​​S文件添加到样式表,但是以下代码的第一行始终会生成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文件无法正常工作,因为它引用了我项目中的其他文件。

css stylesheet javafx
17个回答
18
投票

yourname.css文件直接放在src


0
投票

非常简单。


0
投票

在您的文件。java



0
投票

假设文件结构是这样的:-根--src-资源---- double_slider.css - -包---- JavaFXFile.java


0
投票
scene.getStylesheets().add("file:///home/fullpathname/file.css");

0
投票

所有答案都缺少一个非常重要的部分,并且在css文件名称之前是'/

':

0
投票

尝试将'@'放在文件名中。它为我工作。

例如:'@ main.css'


-1
投票
.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;
 }

12
投票

我认为您没有使用导致无法找到CSS文件的斜线。尝试更正您的路径参考。


8
投票

我有同样的问题。我在Win7上使用NetBeans 7.3和JavaFX 2.2.7,JDK 7.0_21。


4
投票

我有同样的问题(在NetBeans 8中)。我在这里找到了解决方案:https://blog.idrsolutions.com/2014/04/use-external-css-files-javafx/


2
投票

您可以直接在您的.fxml文件中将style.css添加为根元素的属性,就像此stylesheets =“ @ your_relative_path / style.css”。


1
投票

考虑您的旧代码:


1
投票

我做了一个小的登录示例,这就是我链接styleshet.css的方式


0
投票

嗯,你在Netbeans上吗?尝试“ Clean and Build


0
投票

您是否在设置样式表之前初始化了场景对象?

© www.soinside.com 2019 - 2024. All rights reserved.