Les Allergies
Alimentaires
Posez votre question Signaler

Affiché une image en java

phifou - Dernière réponse le 18 mars 2008 à 16:52
salut à tous,
j'ai un problème. Je souhaiterais affiché une image (photo.jpeg) dans mon application java mais je n'arrive pas. Par contre j'arrive à afficher des images .gif. avec les instructions suivantes:

ImageIcon a = new ImageIcon ("image.gif");
Image b = a.Image();
g.drawImage ( b, x, y, null );

lorsque je remplace image.gif par photo.jpeg, ca marche pas. Pourquoi?
Lire la suite 

Affiché une image en java »

5 réponses
Réponse
+11
moins plus
Salut,
écoute je sais que pour l'affichage des images en java c'est assez chiant..
la meilleures choses est de créer une class qui extends JPanel et de redefinir la méthode paint() dedans tu peux t'inspirer de ce code
private Image image = null;
public void paint(Graphics g)
	{
		super.paintComponent(g);
		image = getToolkit().getImage("adresse de l'image");
		if(image != null) // Si l'image existe, ...
		g.drawImage(image, 200, 20, this); // ... on la dessine
	}

ensuite tu n'as plus qu'à créer une instance de la classe et de l'inclure la ou tu veux que l'image soit affichée.

J'espère que ca t'aidera

David
" Many electrons died to bring you this data..."
Ajouter un commentaire
Réponse
+9
moins plus
ok merci, j'ai essayé avec tes conseils, ca marche avec une image.gif mais toujours pas avec une photo.jpeg . Pourtant il detecte la photo(j'ai mis un print si image != null ). POURQUOI ca marche pas!!! sniffff... Voila le programme que j'ai essayé:

import javax.swing.* ;
import java.awt.* ;
class MaFenetre extends JFrame
{ MaFenetre ()
{ setTitle ("IMAGES") ;
setSize (800, 500) ;
pan = new Panneau() ;
getContentPane().add(pan) ;
}
private JPanel pan ;
}
class Panneau extends JPanel
{ public Panneau()
{ photo = getToolkit().getImage("photo.jpeg") ;
}
public void paintComponent(Graphics g)
{ super.paintComponent(g) ;
int x=10, y=10 ;
if(photo != null)
{g.drawImage (photo, x, y, this);System.out.println("photo");}
}
private Image photo = null;
}
public class TestMenu
{ public static void main (String args[])
{ MaFenetre fen = new MaFenetre() ;
fen.setVisible(true) ;
}
}
Ajouter un commentaire
Réponse
+6
moins plus
j'ai trouvé mon erreur!!! je mettais photo.jpeg au lieu de photo.jpg !!!!!! quel con...
Maintenant tout marche.
Ajouter un commentaire
Réponse
+2
moins plus
Tu n'appelles pas la méthode paintComponent. Si tu veux l'appeller alors qu'elle est dans la même classe, essaie la méthode: repaint();

g c'est le contexte graphique de la chose dans quoi tu es. Dans ce cas si, c'est JFrame. Donc quand tu fais repaint(), tu appelles la méthode paintComponent avec le g du JFrame.

Je ne sais pas si c'est pareil, mais tu peux essayé de faire
Graphics g=this.getGraphics();
paintComponent(g);

J'imagine que c'est la même chose mais ce serait idiot de faire ca alors que repaint(); suffi.
Ajouter un commentaire
Réponse
+0
moins plus
j'essai de faire la meme chose avec ce code, mais il manque l'appel a la méthode paintComponent(elle est seulement déclarée, mais on ne l'appel jamais).

j'essai de la faire en appelant la méthode, mais je ne sais pas quoi passer en paramètre, c'est un Graphics qu'il faut, mais lequel?
je n'ai pas de Graphics...
quelqu'un sait??

merci d'avanceConfiguration: Windows XP Firefox 2.0.0.4
Ajouter un commentaire
Ce document intitulé « affiché une image en java » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?