[java] Probleme pour afficher une image

Probleme pour afficher une image [java] - Java - Programmation

Marsh Posté le 31-01-2005 à 11:10:28    

le hiérarchie est la suivante  Base1 -> Base -> Cellule -> Applet
 
dans Base1, avant j'affichais un simple carré noir, mais maintenant j'aimerais afficher une image, voici d'abord mon code :
 
 

Code :
  1. public void dessine(Graphics g)
  2. {
  3.   //g.setColor(Color.black);
  4.   //g.fillRect(1+40*l, 1+40*c, 39, 39);
  5.  uneImage("baseHumain.jpg" );
  6.  g.drawImage(img,1+40*l,1+40*c,this);
  7. }
  8. void uneImage(String fich)
  9. {
  10.  Toolkit tk=getToolkit();
  11.  img= tk.getImage(fich);
  12.  File f= new File(fich);
  13.  try
  14.  { img=ImageIO.read(f);
  15.  }catch(IOException e){System.out.println(e);}
  16. }


 
et voici le probleme que j'ai :
 
javax.imageio.IIOException: Can't read input file!
javax.imageio.IIOException: Can't read input file!
 
Mon fichier image s'appelle bien baseHumain.jpg, j'ai essayé avec un gif aussi, et il se situe au meme endroit que les fichiers .class
Evidemment l'image ne s'affiche pas.
 
Qqun à une idée ?


Message édité par Drizzt le 31-01-2005 à 11:11:20
Reply

Marsh Posté le 31-01-2005 à 11:10:28   

Reply

Marsh Posté le 31-01-2005 à 14:45:02    

t'es dans une applet là ?
avec File f = new File(fich), tu esperes qu'il aille le chercher où ce fichier ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 31-01-2005 à 16:20:43    

the real moins moins a écrit :

t'es dans une applet là ?
avec File f = new File(fich), tu esperes qu'il aille le chercher où ce fichier ?


 
ouais un applet mais ca doit me l'afficher dans une JFrame
 
Ben le fichier fich c'est "baseHumain.jpg" (passé en parametres), j'espere qu'il aille chercher celui la :/


Message édité par Drizzt le 31-01-2005 à 16:21:35
Reply

Marsh Posté le 31-01-2005 à 16:24:22    

et il est ou, physiquement, ce fichier ?
 
(bon, pour gagner du temps:
- dans une applet, t'as pas accès au file system du user
- si tu veux acceder à une image qui est dans ton jar, tu dois passer par un truc genre getResourceAsStream
- si tu veux charger l'image depuis ton serveur web, jette un oeil au MediaTracker)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 31-01-2005 à 16:34:04    

the real moins moins a écrit :

et il est ou, physiquement, ce fichier ?
 
(bon, pour gagner du temps:
- dans une applet, t'as pas accès au file system du user
- si tu veux acceder à une image qui est dans ton jar, tu dois passer par un truc genre getResourceAsStream
- si tu veux charger l'image depuis ton serveur web, jette un oeil au MediaTracker)


 
Le fichier est dans le package au milieu de mes .class
 
Je ne fais pas une application web, j'ai fait ca avec des applet pour hériter des fonctionnalités sonores et multimedia des applets.
 
j'ai essayé de plusieurs maniere, et j'arrive jamais a afficher une image :/

Reply

Marsh Posté le 31-01-2005 à 16:35:04    

* getResourceAsStream ou MediaTracker
* je vois pas le rapport
* getResourceAsStream ou MediaTracker


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 31-01-2005 à 17:27:31    

Si t'arrive toujours pas à afficher une image dans une applet, va voir :  
http://java.developpez.com/astuces/image/

Reply

Marsh Posté le 31-01-2005 à 17:45:31    

Merci a vous 2, j'ai essayé ca :
 

Code :
  1. public void dessine(Graphics g)
  2. {
  3.   //g.setColor(Color.black);
  4.   //g.fillRect(1+40*l, 1+40*c, 39, 39);
  5.    MediaTracker  trk = new MediaTracker(this) ;
  6.           Toolkit toolkit = Toolkit.getDefaultToolkit();
  7.          // Lecture de l'image
  8.           img =  toolkit.getImage( "./baseHumain.jpg" ) ;
  9.          // Ajout de l'image dans le MediaTracker
  10.   trk.addImage(img, 0) ;
  11.           try {
  12.  trk.waitForAll() ;
  13.           } catch (InterruptedException e) {
  14.  // Traitement de l'erreur
  15.           }
  16.      // Dessiner l'application
  17.           // On dessine l'image a la position 5/10
  18.           g.drawImage(img, 1+40*l, 1+40*c, this) ;
  19.     }


 
ca compile sans erreur, mais pas d'image :(

Reply

Marsh Posté le 31-01-2005 à 17:53:02    

l'est ou ton image dans ton jar?
si à la racine:
toolkit.getImage("/baseHumain.jpg" );
si dans le même package que la classe en cours:
toolkit.getImage("baseHumain.jpg" );


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 31-01-2005 à 18:02:36    

the real moins moins a écrit :

l'est ou ton image dans ton jar?
si à la racine:
toolkit.getImage("/baseHumain.jpg" );
si dans le même package que la classe en cours:
toolkit.getImage("baseHumain.jpg" );


 
 
j'ai qu'un seul package, et y'a tout dedant, les classes et l'image.
 
Je viens d'essayer tes 2 syntaxes, ca compile, mais rien ne s'affiche :(
 
 
Je précise aussi que le init() n'est pas dans cette classe mais dans une autre qui appelle la méthode dessine de cette classe.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed