Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx 2 在JavaFX2.0中使用CSS_Javafx 2 - Fatal编程技术网

Javafx 2 在JavaFX2.0中使用CSS

Javafx 2 在JavaFX2.0中使用CSS,javafx-2,Javafx 2,我尝试在JavaFX2.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运行 未找到资源“nu

我尝试在JavaFX2.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”


什么也解决不了这个问题

我在这方面也遇到了麻烦,但我用这样的方法解决了这个问题:

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

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

如果您的CSS文件在同一个包中,则此操作有效

scene.getStylesheets().add(YourClazz.class.getResource("myCssFile.css").toExternalForm());

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

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

有很多建议可以将css文件放在不同的位置,但这对我来说是有效的。
scene.getStylesheets().add(getClass().getResource("YourCSSFile.css").toString());
添加到项目中的任何文件都必须位于NetBeans创建的项目主目录中。例如,如果您的项目名为HiJohn,并且它位于
/NetBeansProjects/HiJohn
中,则需要将.css文件放在目录HiJohn中,您可以使用
style.css
引用它

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

如果您仍然有问题,这里有一个很好的资源,可以帮助您了解基本知识:


祝你好运

在您的src文件夹中添加:

src/resources/css/yourStyle.css
然后添加以下代码:

scene.getStylesheets().add("resources/css/yourStyle.css");

在Eclipse中,我发现我可以让IDE找到css文件,如下所示:

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


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

如果您想用一个css来设置整个应用程序的样式,您可以在这里找到一个解决方案:

使用:

root.getStyleSheet().add(
    youclass.class.getResources("YourCSSFileWichIsinYourDefaultPackage").toExternalForm()
);

我也一样。仍然没有回答。太好了——我为此沮丧得直扯头发。第一个对我有效的修复程序(另外需要清理和重建)。
scene.getStylesheets().add(“/com/yourdomain/resources/style.css”)应该很好你好,亨利,欢迎来到SO。。。请详细说明答案,但我想知道为什么路径看起来是相对于“src”文件夹的
root.getStyleSheet().add(
    youclass.class.getResources("YourCSSFileWichIsinYourDefaultPackage").toExternalForm()
);