如何在JavaFX 2中加载css文件?

时间:2014-03-11 05:12:21

标签: css javafx-2

com.xyz.abc package (ex: com.xyz.abc.Sample.java)中写了我的JavaFX课程 并在`root / css / styles.css。

中写了我的CSS文件

如何将此CSS文件加载到Sample.java

2 个答案:

答案 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”。