à supp
à supp
Si tes images sont dans ton projet eclipse et que tu fais un export avec,
par défaut, eclipse va t'intégrer tes images dans le jar et tes classes pourront l'utiliser sans problème.
C'était ça ta question ?
en fait le dossier image est uniquement présent dans le repertoire, mais il n'est pas intrégré dans eclipse, comment faire ?
Salut
1) Ajoute le répertoire contenant tes image dans le classpath dans Eclipse (ou alors, déplace tes images pour les mettre dans le répertoire src).
2) Il faut que tu modifie le code qui lira tes images de :
vers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Image imageTutu = getToolkit().getImage("images/tutu.png"); Image imageTiti = getToolkit().getImage("images/titi.png"); Image imageToto = getToolkit().getImage("images/toto.png");
Ainsi tu t'assure de toujours pouvoir accéder à tes images que tu lances ton programme d'Eclipse ou du jar. Les images étant dans le classpath, elles seront toujours trouvées par la méthode getResourceAsStream. Au passage, il faut mieux utiliser ImageIO.read plutôt que la méthode getImage de Toolkit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Image imageTutu = ImageIO.read(this.getClass().getClassLoader().getResourceAsStream("tutu.png")); Image imageTiti = ImageIO.read(this.getClass().getClassLoader().getResourceAsStream("titi.png")); Image imageToto =ImageIO.read(this.getClass().getClassLoader().getResourceAsStream("toto.png"));
3) Après tu lance l'export en jar à partir d'Eclipse.
-"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
-"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".
Pieds d'argile (1996), Terry Pratchett 1948 - 2015
(trad. Patrick Couton)
ok, mais quand je transforme, il me souligne chaque ligne en rouge en me disant : Unhandled exception type IOException
et je n'ai aucune suggestion, j'ai essayé de mettre un try et un catch mais il veut pas...
En mettant : ImageIcon imageTaupeN = new ImageIcon(getClass().getResource("/toto.png"));
Il me souligne plus en rouge. Mais quand je charge les images, j'utilise :
loader.addImage(imageToto,1);
ça ne marche pas car le loader c'est pour les images et pas pour les imageIcon, donc j'y arrive pas...
Du coup à l'éxecution :
The method addImage(Image, int) in the type MediaTracker is not applicable for the arguments (ImageIcon, int)
Idem pour ma méthode "drawImage" qui ne prend pas les ImageIcon...
Merci encore
Bon c'est bon j'ai réussi, en mettant :
Image imageTaupeN = getToolkit().getImage(getClass().getResource("images/taupeN.png"));
ça compile, ça ne s'éxécute pas, mais apparamment c 'est normal, et quand j'exporte en .jar , il prend bien mes images, MAIS il faut que le dossier images soit à coté du jar...sinon ça marche pas, alors là jtourne en rond
je te conseille d'utiliser la classe ImageIcon elle implemente l'interface ICon qui va te permettre de charger ton image sans souci ( car ca attend que l'image se charge completement ) et ceci depuis le jar.
ImageIcon icon1 = new ImageIcon(Home.class.getClass().getResource("/icone.JPG"));
Image im = icon1.getImage();
Essai ca et crée un source folder dans ton prejet dans le quel tu met tes images .
tu verra ca marche normalement sous eclipse et quand tu exporte ton jar
bon courage
Home c'est quoi ? Je l'ai remplacé par le nom de la classe dans laquelle je ce code.
J'ai bien fait ça pour chaque images :
ImageIcon imageToto = new ImageIcon(NomdeMaClasse.class.getClass().getResource("/toto.png"));
Image imageN=imageTaupeN.getImage();
J'ai changé les noms dans le reste du programme pour que ça soit cohérent.
J'ai créer un source folder, j'ai glisser mes images dedans, j'ai fais un "refresh". Puis j'ai cliqué sur mon projet, export, et j'ai fais suivant. Quand je lance mon jar, ça bug. Si j'éxécute le programme dans eclipse ou le jar dans un terminal je vois les erreurs suivantes :
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
at Labyrinthe.<init>(Labyrinthe.java:23)
at Simulation.main(Simulation.java:27)
Apparamment ils ne trouvent pas les images, j'ai essayé de remplace "/toto.png" par "images/toto.png" mais ça ne marche pas, le dossier images est bien à la racine du projet, j'ai aussi essayé de copier les images dans src et bin mais marche pas...
MErci encore
je comprend spas trop là :
ImageIcon imageToto = new ImageIcon(NomdeMaClasse.class.getClass().getResource("/toto.png"));
Image imageN=imageTaupeN.getImage();
je te fais passer par ImageIcone pour charger ton image puis tu fais un getImage sur ton imagIcon pour obtenir l'image .
ca devrait etre plutot kelke chose du genre :
ImageIcon imageToto = new ImageIcon(NomdeMaClasse.class.getClass().getResource("images/toto.png"));
Image imageN= imageToto.getImage();
puisque ton imageIcone qui charge l'image s'appel imageToto .
puis pour manipuler cet image tu la gere avec l'objet imageN que tu viens de crée .
en esperant que ca t'aide
Oui j'ai fais une erreur dans mon message j'ai bien tapé ça pour chaque image :
ImageIcon imageToto = new ImageIcon(Labyrinthe.class.getClass().getResource("images/toto.png"));
Image imageN= imageToto.getImage();
Je manipule ensuite les images avec imageN...
La classe dans laquelle je manipule ces images s'appelle Labyrinthe. Mon projet a pour classe main Simulation.
J'ai bien mon source folder qui s'appelle images. mais ça ne marche pas , j'ai toujours :
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
at Labyrinthe.<init>(Labyrinthe.java:17)
at Simulation.main(Simulation.java:27)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager