Javafx 2 在JavaFX2.0中使用CSS
我尝试在JavaFX2.0中使用CSS。但它不起作用。我尝试导入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
// 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()
);