3

我尝试在 JavaFX 2.0 中使用 CSS。但它不起作用。我试图导入一个 CSS 文件:

// Import CSS
Group root = new Group();
Scene scene = new Scene(root, 300, 250, Color.LIGHTGREEN);
scene.getStylesheets().add("example.css");

但是 NetBeans 总是抛出以下异常:

警告:com.sun.javafx.css.StyleManager$2 运行资源“null”未找到。

我尝试将 CSS 文件放在项目目录中,放入 src 目录并使用绝对路径:"C:\\Users\\janus\\Documents\\NetBeansProjects\\example.css"

没有解决问题

4

11 回答 11

16

在您的 src 文件夹中添加:

src/resources/css/yourStyle.css

然后添加以下代码:

scene.getStylesheets().add("resources/css/yourStyle.css");
于 2013-02-17T13:27:37.727 回答
6

如果您的 CSS 文件在同一个包中,则此方法有效。

scene.getStylesheets().add(YourClazz.class.getResource("myCssFile.css").toExternalForm());
于 2011-07-15T14:29:01.277 回答
3

我也遇到了麻烦,但是可以使用以下方法:

String cssPath = "/com/yourdomain/resources/style.css";
scene.getStylesheets().addAll(cssPath);

更改 cssPath 的值以匹配包含您的 css 文件的包。

于 2011-07-07T19:48:58.367 回答
1

我发现整个.css问题都可以解决,使用NetBeans时,进入项目属性-运行-独立应用程序属性-工作目录,选择.css文件和/或主类所在目录的路径. 我不知道(windows)默认使用什么,可能是一个临时目录。如果是这样,那么那里当然没有.css文件,你会得到空指针异常。

于 2012-04-18T20:25:17.090 回答
1

如果您想通过一个 CSS 为您的完整应用程序设置样式,您可以在此处找到解决方案:http: //www.guigarage.com/2013/03/global-stylesheet-for-your-javafx-application/

于 2013-05-20T21:15:32.070 回答
0

一个可能的原因是您需要在运行之前清理并重新构建您的项目。

于 2012-04-29T10:55:40.637 回答
0

有很多建议可以将你的 css 文件放在不同的地方,但这对我有用。添加到项目的任何文件都必须位于 NetBeans 创建的项目主目录中。例如,如果您的项目名称是 HiJohn 并且它驻留在其中, /NetBeansProjects/HiJohn您需要将 .css 文件放在 HiJohn 目录中,您可以使用 .css 来引用它style.css

对于我自己,我在我的 NetBeans 项目中创建了一个名为 resources 的资源文件夹。这使得我可以使用 resources/style.css 或访问该资源文件夹中的任何文件resources/settings.xml

如果您仍有疑问,这里是了解基础知识的绝佳资源:

http://docs.oracle.com/javafx/2/css_tutorial/jfxpub-css_tutorial.htm

祝你好运!

于 2013-01-22T22:30:50.137 回答
0
"file:/"+ new File("styles/intro.css").getAbsoluteFile().getPath()
                    .replaceAll(" ", "%20");
于 2013-02-28T09:26:22.883 回答
0

在 Eclipse 中,我发现我可以启用 IDE 来查找 css 文件,如下所示:

在您的工作区中为您的 css 文件创建一个文件夹(我将它放在当前项目的 src 文件夹中是最可靠的成功)。在项目属性 > 资源 > 链接资源中,您可以创建一个新变量并使用现有变量来定义一个漂亮的简单路径(例如,创建一个名称:RESOURCES 并点击变量,选择 PROJECT_LOC,点击扩展,选择/导航到文件夹您创建的)。好在 Eclipse 会立即显示您选择的位置,并在您尝试引用它找不到的位置时警告您。

在您的代码中,您的路径现在只是“RESOURCES/[fileName.css]”。

于 2013-05-14T15:58:43.187 回答
0

采用:

root.getStyleSheet().add(
    youclass.class.getResources("YourCSSFileWichIsinYourDefaultPackage").toExternalForm()
);
于 2014-02-02T14:25:54.413 回答
-1
scene.getStylesheets().add(getClass().getResource("YourCSSFile.css").toString());
于 2013-01-12T16:27:17.560 回答