Image dans une JFrame en Java [Résolu/Fermé]

Signaler
Messages postés
13
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
12 septembre 2007
-
 tosky -
Bonjour,

je cherche à afficher une image dans une JFrame en java.
J'utilise Eclipse et Visual Editor.

Voici mon code:

Public class fenetre_image extends JFrame{

private JPanel jContentPane=null;
private JPanel pan;

public fenetre_image(){
super();
this.setContentPane(getJContentPane());
pan = new Panneau();
getContentPane().add(pan);
}
}

public class Panneau extends JPanel{
private Image im = null;

public Panneau(){
im=getToolkit().getImage("mon_image.gif");
}

public void paintComponent(Graphics g){
super.paintComponent(g);
int x=10,y=10;
if (im!=null){
g.drawImage(im,x,y,this);
}
}
}

ma méthode main:
public static void main(){
fenetre_image fi=new fenetre_image();
fi.setVisible(true);
}


la JFrame s'affiche mais le contenu n'affiche pas l'image.

Je suppose que c'est parce que je n'appelle jamais la méthode paintComonent, mais je ne sais pas ou l'apeller et avec quelle parametre de tpe Graphics.

Quelqu'un pourrait m'aider?????

merci d'avance

11 réponses

Messages postés
9367
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 330
Tiens j'ai bricolé un vieux code :) :

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JFrame;
import javax.swing.JPanel;

class GlobalConsoleFrame extends JFrame
{
GlobalConsoleFrame()
{
setSize(1280, 1024);
setTitle("Test");
setContentPane(new AfficheImage("C:\\impress2.gif"));
getContentPane().setLayout(new BorderLayout());
this.setVisible(true);
}
}

class AfficheImage extends JPanel
{
Image eau;

AfficheImage(String s)
{
eau = getToolkit().getImage(s);
}

public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(eau, 0, 0, getWidth(), getHeight(), this);
}
}

public class affichage
{
public static void main(String[] args)
{
GlobalConsoleFrame test = new GlobalConsoleFrame();
}
}

Voilà j'espère que ca pourra t'aider, ce code est testé et fonctionne.

Loup.
18
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
110
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
13 octobre 2013
25
Merci ça marche du tonnerre
Enfin quelque chose d'intelligent qui fonctionne ! Merci beaucoup
merci pour l'aide.
Messages postés
2
Date d'inscription
vendredi 4 décembre 2015
Statut
Membre
Dernière intervention
7 janvier 2016

salut , svp je veux juste s’avoie le mot eau s'agit de quoi et pour quel but ,?
Merci pour l'aide
Messages postés
9367
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 330
Zut j'ai la réponse pas loin et je la trouve pas ^^
ok merci beaucoup!

yo
je veux un code source qui affiche deux images juxtaposées dans une une seul fenetre qui est la fenetre principale
Messages postés
13
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
12 septembre 2007
3
ok je te laisse la trouver ^^ merci
Messages postés
13
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
12 septembre 2007
3
merci oui ça marche tres bien , merci beaucoup!!!


pour savoir, quand est appelée la méthode paintComponent????

car en déroulant le programme, la derniere méthode qui semble être appelée est AfficheImage?non?
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
La méthode paintComponent est appelée automatiquement en fait par la JVM. (il me semble)
Messages postés
9367
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 330
Tout à fait, elle est appelée automatqieuement.

Mais comme nous devons la modifier, nous devons la réécrire :):

Loup.
Messages postés
13
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
12 septembre 2007
3
j'ai un autre petit soucis,

j'arrive la premiere fois a afficher l'image, puis je la modifie(je la laiss au meme endroit avec le meme nom), mais quand je rappelle
new GlobalConsoleFrame(); l'image ne change pas, alors qu'elle devrait..

si je l'ouvre dans le repertoire ou elle se trouve, elle a bien changé, mais pas dans mon appli. pourquoi?

merci
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
Il faut qu'apres avoir modifier ton image, tu force un rappel à de la méthode qui redessine l'image (je ne sais plus de nom de la méthode par contre, faut que tu cherche :) )
Messages postés
29
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
15 avril 2010

bonjour,
est ce que vous pouvez m'aider à me faire avec netbeans?