Rechercher : dans
Par :

Affiché une image en java

Dernière réponse le 18 mar 2008 à 16:52:35 phifou, le 7 sep 2004 à 00:14:38 
 Signaler ce message aux modérateurs

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?

Meilleures réponses pour « affiché une image en java » dans :
Afficher les images et les animations Flash dans le navigateur VoirQuand vous allez sur un site internet, vous n'avez plus d'images affichées ; elles sont remplacées par un petit rectangle avec un carré rouge ou un triangle bleu (par exemple). 1 - Vérifier d'abord les paramètres de votre navigateur : Pour...
Une popup d'information au survol sans Javascript ni CSS VoirParfois, il peut être utile d'afficher des informations supplémentaire au survol du curseur sur une zone de l'écran, par exemple "Cliquez pour agrandir" sur une image, un descriptif sur une abbréviation ou des détails sur un lien. On trouve...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...

1

thedavix, le 7 sep 2004 à 09:44:04
  • +1

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..."

Répondre à thedavix

2

phifou, le 7 sep 2004 à 14:07:23
  • +2

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) ;
}
}

Répondre à phifou

3

phifou, le 7 sep 2004 à 15:51:32

J'ai trouvé mon erreur!!! je mettais photo.jpeg au lieu de photo.jpg !!!!!! quel con...
Maintenant tout marche.

Répondre à phifou

4

yotheyoung, le 30 aoû 2007 à 10:28:07

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'avance

Configuration: Windows XP
Firefox 2.0.0.4

Répondre à yotheyoung

5

 X-Fan, le 18 mar 2008 à 16:52:35

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.

Répondre à X-Fan