the not intellij information idea how configured java intellij-idea javafx fxml

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")