java - not - scene builder wiki
IntelliJ IDEA-getClass(). GetResource("...") devuelve nulo (4)
Dejé de intentar usar getClass().getResource("BookingForm.css"));
En su lugar, creo un objeto File, creo una URL de ese objeto y luego la paso a getStyleSheets () o setLocation () File file = new File(System.getProperty("user.dir").toString() + "/src/main/resources/BookingForm.css");
scene.getStylesheets().add(folder.toURI().toURL().toExternalForm());
Estoy usando IntelliJ IDEA 13.1.5, solía trabajar con Eclipse. Estoy trabajando en la aplicación JavaFX, intento cargar el archivo FXML dentro de mi clase MainApp usando getClass (). GetResource (). Leo la documentación y pruebo varias ideas, al final tengo nulo .
Esta es la jerarquía:
dz.bilaldjago.homekode.MainApp.java
dz.bilaldjago.homekode.view.RootLayout.FXML
Este es el fragmento de código que utilicé:
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("view/RootLayout.fxml"));
Intenté otra solución como dar la url desde la raíz y usar classLoader
El resultado es el mismo. Cualquier idea, por favor
Para aquellos que usan Intellij Idea: verifique Settings -> Compiler -> Resource patterns
.
La configuración contiene todas las extensiones que deben interpretarse como recursos. Si una extensión no cumple con ningún patrón aquí, class.getResource devolverá nulo para recursos usando esta extensión.
Resolví este problema señalando la resource root
del resource root
en IDEA.
Right click
el Right click
en un directorio (o solo en el nombre del proyecto) -> Mark directory As
-> Resource Root
.
Recompile y regocíjense: P Espero que esto funcione para ustedes ~
Windows distingue entre mayúsculas y minúsculas, el resto del mundo no. También un archivo java ejecutable (formato zip) los nombres de los recursos son sensibles a las mayúsculas y minúsculas.
Mejor cambiar el nombre del archivo
view/RootLayout.FXML
a
view/RootLayout.fxml
Esto se debe hacer retirando el archivo original y creando uno nuevo.
También compile en un jar y verifique que el archivo fxml haya sido agregado al jar (archivo zip). Cuando las rutas de recursos de IntelliJ no son tratadas por otra respuesta.
Por cierto, esta es la ruta relativa a la ruta del paquete de getClass()
. Tenga en cuenta que si amplió esta clase, la ruta completa cambia, mejor uso:
MainApp.class.getResource("view/RootLayout.fxml")