j'ai setVisible(true);
Version imprimable
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)
Pour résoudre ton problème, il te suffit de surcharger la méthode paint() de ton JPanel,
par exemple:
Code:
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); }
Citation:
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:
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); } } }
merci pour l'info je vais essayé dardar
au faite dans ma class Tapis j'avais surchargé :
mais ça n'affichait rien. Parcontre je vais essayé avec la méthode de SINOKCode:
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; } } ....