What is wrong with my syntax calling a stylesheet (css) from an FXML file?
fxml, java-8, javafx
Solution
Let me consider your project structure as follows
MyApp
|
|_ src
|
|_controllers (Controllers)
|_view (FXML)
|_style (css)
|_myStyle.css
You can specific the relative path in the FXML using
<stylesheets>
<URL value="@../style/myStyle.css" />
</stylesheets>
In your controller, you can add it as follows
layout.getStylesheets().add(getClass().
getResource("/style/myStyle.css")).toExternalForm();
Problem
I am working in NetBeans 8, with Java 8 / JavaFX and FXML. In the first controller (an AnchorPane) in my FXML document, I have this, that works: ``` stylesheets="file:///C:/Users/me/Documents/NetBeansProjects/MyApp/src/myApp/myStyle.css" ``` However, when I attempt to replace that with any type of relative path, I get the following error at runtime: ``` com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged WARNING: Resource "myStyle.css" not found. ``` I tried ``` stylesheets="myStyle.css" stylesheets="file://myStyle.css" stylesheets="./myStyle.css" stylesheets="css/myStyle.css" ``` (where I put a copy of the css file in a subdirectory from where it was) ...and maybe 50 other permutations. Every time I get the same error. The reason I care is that I am having a second problem. In the first version, that works on my machine... when I take my jar file to another machine, the css is not applied when the application is run... It's like the resource file isn't copied. Help? Thanks! -Adeena