Java Swing: l'Affichage des images dans un Bocal
Lors de l'exécution d'une application Java à partir d'eclipse ma ImageIcon montre bien.
Mais après la création d'un jar le chemin vers l'image devient évidemment foiré.
Est-il un moyen pour extraire une image à partir du pot au moment de l'exécution afin que je puisse ensuite l'ouvrir? Ou, est-il une meilleure façon de le faire?
J'aimerais distribuer un seul fichier jar si possible.
- Le "Tom Hawtin - tackline" la réponse est beaucoup mieux, il a juste montré un peu de retard. Envisagez de changer votre réponse sélectionnée.
InformationsquelleAutor jjnguy | 2008-08-27
Vous devez vous connecter pour publier un commentaire.
Pour créer un
ImageIcon
partir d'un fichier image au sein de la même bocaux votre code est chargé:Class.getResource
renvoie une URL d'une ressource (ounull
!).ImageIcon
a un des constructeurs de la charge à partir d'une URL.Pour construire l'URL d'une ressource dans un bocal pas sur votre "classpath", consultez la documentation de
java.net.JarURLConnection
.Vous pouvez essayer quelque chose comme:
Dans votre fichier JAR, vous pouvez avoir une structure de répertoire:
Ce travail est pour moi de charge et de définir le volet contenu de l'image d'arrière-plan:
bocal (ou build path) contient:
java contient:
Testé et de travail dans les deux bocal et unjarred (est-ce le terme technique) de l'exécution.
BTW
getClass().getClassLoader().getResourceAsStream("/img/bg.png")
- que j'ai essayé de première retourné me null InputStream.Dans netbeans 8.1 ce que j'ai fait à inclure dans le dossier des icônes et d'autres images appelées Ressources à l'intérieur de la src dossier dans le fichier de projet. Donc à chaque fois que je construis Pot fichier le dossier est inclus.L'arborescence de fichiers devrait être comme ceci:
Le code devrait ressembler à:
Charger une image à partir du fichier Jar au moment de l'exécution est la même que pour le chargement de l'image lors de l'exécution de l'IDE e.g netbeans la différence est que lors du chargement de l'image à partir du fichier JAR le chemin d'accès doit être correct et ses casse (très important).
Cela fonctionne pour moi
si p est dans "/Pictures/firstgame/habitat1.jpg" est en minuscule il l'habitude de travailler. vérifier espaces, des affaires et de l'orthographe