J'utilise IntelliJ IDEA 13.1.5, je travaillais avec Eclipse. Je travaille sur l'application JavaFX, j'essaie de charger le fichier FXML dans ma classe MainApp en utilisant getClass (). GetResource (). J'ai lu la documentation et j'essaye plusieurs idées, à la fin j'ai null .
Voici la hiérarchie:
dz.bilaldjago.homekode.MainApp.Java
dz.bilaldjago.homekode.view.RootLayout.FXML
Voici l'extrait de code que j'ai utilisé:
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("view/RootLayout.fxml"));
J'ai essayé une autre solution comme donner l'url de la racine et utiliser le classLoader
le résultat est le même. Toute idée s'il vous plaît
J'ai résolu ce problème en soulignant le resource root
sur IDEA.
Right click
sur un répertoire (ou simplement le nom du projet) -> Mark directory As
-> Resource Root
.
Recompiler et se réjouir: P J'espère que cela fonctionne pour vous ~
Pour ceux qui utilisent Intellij Idea: recherchez Settings -> Compiler -> Resource patterns
.
Le paramètre contient toutes les extensions qui doivent être interprétées comme des ressources. Si une extension ne se conforme à aucun modèle ici, class.getResource retournera null pour les ressources utilisant cette extension.
si votre projet est un projet maven, vérifiez le code cible pour voir si votre fichier .fxml existe là-bas. s'il n'est pas là, il suffit d'ajouter
<resources>
<resource>
<directory>src/main/Java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
dans votre pom.xml
Placez vos ressources dans le dossier resources
.
Utilisez-les avec une barre oblique avant leurs noms: getClass().getResource("/myfont.ttf");
Si vous utilisez Intellij IDEA
et vous avez créé un projet Maven
, vous devez placer vos ressources dans le dossier resources
(marqué comme racine de la ressource par intellij lui-même) et ces ressources vont à la racine de votre application compilée.
Je veux dire, /resources/myfont.ttf
ira à /myfont.ttf
dans la version résultante.
Vous devriez donc l'obtenir via /myfont.ttf
et pas myfont.ttf
. Utilisez-le comme ceci:
getClass().getResource("/myfont.ttf");
Pas besoin de changer quoi que ce soit d'autre. Juste celui-ci m'a aidé.
Selon suggestion, réponse mise à jour.
Étape 1
Étape 2
Étape 3
Étape 4
Réexécutez votre programme Java et maintenant il devrait fonctionner.
<--- Réponse précédente ---->
J'espère que cela t'aides. Aussi, tutoriel de détails .