在com.xyz.abc package (ex: com.xyz.abc.Sample.java)
中写了我的JavaFX课程
并在`root / css / styles.css。
如何将此CSS文件加载到Sample.java
?
答案 0 :(得分:0)
将其添加到应用开头的场景
scene.getStylesheets().add("path/to/your/stylesheet.css");
答案 1 :(得分:0)
请参阅CSS reference guide了解路径的解析方式:
样式表URL可以是绝对URL或相对URL。如果一个 给出相对URL,它是根据的基本URL解析的 具体Application类的ClassLoader。例如,如果那里 是一个扩展Application的主要类com.wicked.cool.ui.Main 相对URL“com / wicked / cool / resources / styles.css”将解决 正确。从那以后,相对URL“../resources/styles.css”就不会了 相对于根的路径“..”不是有效路径。经常这样 更容易使用某些类的ClassLoader来查找资源。对于 例如,如果“styles.css”文件与Main位于同一个包中, 以下代码将提供正确的URL: com.wicked.cool.ui.Main.class.getResource( “styles.css的”)。toExternalForm()
请注意,从JavaFX 2.1开始,只包含一个URL 绝对路径(没有方案或权限)相对于 扩展Application的类的ClassLoader的基本URL。在 换句话说,“/com/wicked/cool/resources/styles.css”被视为 “COM /邪恶/冷/资源/ Styles.css中”。这与FXML一致。
所以你的问题不是很清楚,但如果“root”是你的应用程序的类路径,你可能想要
scene.getStylesheets().add(getClass().getResource("css/styles.css").toExternalForm());
如果“root”实际上是类路径中的目录,则将“css / styles.css”替换为“root / css / styles.css”。