2017-09-25 3 views
0

Pour ajouter une image, j'ai utilisé ce code.L'image ne s'affiche pas dans JFrame - Java Application

JLabel label = new JLabel(new ImageIcon(getClass().getResource("/bin/image.png"))); 

emplacement de l'image: Application/src/bin/image.png.

problème est, à mon mode de débogage ordinateur, il montre l'image. Mais après le projet propre et construit si je copie le dossier (Application/dist) à un autre ordinateur il n'affiche pas l'image. Comment puis-je montrer l'image sur d'autres ordinateurs?

+0

Copie possible de [Intégrer des ressources (images, sons, etc.) dans un projet Java puis utiliser ces ressources] (https://stackoverflow.com/questions/3721706/embedding-resources-images-sound-bits-etc -into-a-java-project-then-use-these) – MC10

+0

Décompressez le fichier Jar, voir si les ressources ont été incluses. Sinon, vous aurez besoin de comprendre comment les inclure, ce qui sera déterminé par la façon dont vous générez le fichier Jar en premier lieu – MadProgrammer

Répondre

0

getClass(). GetResource renvoie un fichier depuis/src/et sera regroupé dans la corbeille après la génération.

modifications uniquement /image.png pour le charger de la structure du projet

Sinon, si vous voulez copier les ressources (ou ajouter une nouvelle source de creux articles), vous devez utiliser le chemin complet de la ressource qualifiée et le charger en tant que fichier à la place.

En outre, vous devez exporter avec des ressources via Eclipse ou FatJar, ne sais pas par Ant. J'ai aussi eu quelques problèmes en obtenant des ressources avec getClass(). GetResource, à la place j'ai utilisé getClass(). GetClassLoader(). GetResource.

+0

'getClass(). GetResource' renvoie des ressources dans le chemin de classe en cours - il n'a rien à faire avec le répertoire 'src' - certaines ressources d'un paquet IDE sont stockées dans le répertoire' src', mais dépouillent l'élément path de 'src'. * "Modifie seulement /image.png pour le charger à partir de la structure du projet" * - basé sur l'entrée, je m'attendrais à ce qu'il soit '/ bin/image.png', mais sans détails sur la façon dont le Jar est généré, il est impossible d'être sûr – MadProgrammer

+0

Le/src/génère la classe compilée dans/bin/et la racine de celui-ci sera '/' –

+0

Sous quelle JVM/système de construction? 'bin' est juste un répertoire/paquet comme un autre, selon la façon dont le système est réalisé, il est aussi facile d'être'/bin/... 'ou quelque chose d'autre - en supposant l'opération par défaut de la plupart des IDE'/bin/... 'est un pari plus sûr - à moins que le PO ne soit prêt à fournir plus de détails sur la façon dont il conditionne le bocal - tout n'est que supposition et conjecture – MadProgrammer