Si les ressources qui vous intéressent sont dans le chemin de classe, empaquetées dans le pot, la guerre ou la distribution, vous pouvez les récupérer en récupérant des ressources. La convention est en effet d'avoir un répertoire nommé 'src/resources' qui sert de racine pour cela. En fonction de la quantité et de la portée des ressources que vous utilisez, vous pouvez également ajouter une hiérarchie de sous-répertoires pour gérer l'organisation et l'état des ressources.
Aussi, pas qu'une ressource peut être n'importe quel fichier, une image, un son, un texte, un fichier XML, binaire, etc. aucune limitation.
Enfin, l'appel ressemblera à ceci si vous utilisez une méthode d'objet:. getClass() getResourceAsStream ("ressources/myResource") - ou - getClass() getResource ("ressources/myResource") dépend. si vous voulez un flux ou juste l'URI à ce point dans le code. Généralement, on utilise l'URI pour déléguer le traitement de la ressource ailleurs et le formulaire de flux lorsque vous le traitez en ligne.
Pour une méthode de classe, vous aurez besoin de faire quelque chose comme:.
nouveau ...
Object() getClass() Le pensez à garder à l'esprit ici, est finalement est de résoudre au chargeur de classe et c'est à partir de ce chemin de classe que la ressource sera récupérée.
Ok donc essayé, lors de l'exécution de NetBeans ce code fonctionne très bien: [code] URL imgOn = cldr.getResource ("ressources \\ sur. png "); URL imgOff = cldr.getResource ("resources \\ off.png"); ImageIcon on; ImageIcon désactivé; public void run() { System.out.println ("URL:" + imgOn); on = nouveau ImageIcon (imgOn); off = new ImageIcon (imgOff); ... [/ code] Lors de l'exécution à partir du fichier jar dans la commande dist, ceci renvoie URL: null ..... – RenegadeAndy
Essayez de décompresser le fichier jar et vérifiez que les fichiers de ressources ont bien été inclus dans le fichier jar. –