j'ai setVisible(true);
Et en quel honneur ta Frame devrait-elle afficher l'image?
Dans ton code, tu déclare une variable de type ImageIcon que tu initialises... fort bien, mais à aucun moment je ne vois de ligne de code demandant d'afficher cette dernière en fond de ton JPanel... (à moins que j'aie raté quelque chose)
Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
Mes articles et tutoriaux & Mon blog informatique
Pour résoudre ton problème, il te suffit de surcharger la méthode paint() de ton JPanel,
par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void paint(Graphics g){ super(g); tapiscarte = new ImageIcon("C:\\image\\Tapis.gif"); g.drawImage(tapiscarte, 0, 0, null); }
Envoyé par erictoguem
Version correcte
- Il vaut mieux surcharger paintComponent que paint, car paint réalise d'autre opérations que le dessin du composant lui même comme le dessin des bordures, des componants contenus & ainsi de suite...
- un drawImage avec un ImageIcon ne marchera pas, il faut faire une drawImage sur le résultat de la méthode getImage de l'ImageIcon
- au sper() appelle nle constructeur de ta classe, j'aurais plutôt tendance à utiliser super.paintComponent(g), sinon vois le dawa...
- Charger une Image à chaque paintComponent, c'est basiquement une horreur niveau perfs
++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class ImageComponent extends JComponent { private Image image; public ImageComponent(Image image) { this.image = image; if(image != null) { this.setPreferredSize(new Dimension(image.getWidth(), image.getHeight()); } } protected void paintComponent(Graphics g) { super.paintComponent(g); if(isShowing() && image != null { g.drawImage(image,0,0,null); } } }
au faite dans ma class Tapis j'avais surchargé :
mais ça n'affichait rien. Parcontre je vais essayé avec la méthode de SINOK
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public class Tapis extends JPanel { private static ImageIcon[] dominoJouee= new ImageIcon[4];; private static ImageIcon[] dominoSud = new ImageIcon[8]; private ImageIcon dominoV,tapisdomino; ... ... Tapis(Joueur[] joueurs) { lesjoueurs = joueurs; dominoV = new ImageIcon("C:\\images\\00.jpg"); tapisdomino = new ImageIcon("C:\\images\\tapis.jpg"); essai=new JLabel(dominoV); setLayout(null); } public void paintComponent(Graphics g) { super.paintComponent(g); // jeux joueur sud int nb = 0; int posx = 125; int posy = 475; g.drawImage(tapisdomino.getImage(), 0, 0, null); nb = lesjoueurs[0].main.size(); for (int v = 0; v < nb; v++) { Domino ledomino =(Domino)lesjoueurs[0].main.get(v); if (ledomino!=null){ g.drawImage(ledomino.getImage(), posx,posy, null); posx = posx + 40; } } ....
Partager