Bonsoir,
J'ai un problème pour insérer des images dans un Graphics de JPanel.
En fait j'ai fait une classe Frame extends JFrame, qui crée une fenêtre basique avec un JPanel :
Puis je crée une classe Panel extends JPanel de cette façon :
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 public class Frame extends JFrame { private Panel pan = new Panel (); private Image background = new IconImage( "image2.png" ).getImage(); // l'image de fond de la fenêtre public Frame () { // Création fenêtre : this.setSize( ....... ....... // Panel : this.setContentPane( pan ); this.setVisible(true): pan.setBackGround( image2 ); // méthode de la classe Panel } }
Voilà c'est gros ce que j'ai mis ( j'ai recopié le code de mémoire il y a surement des petites erreurs ).
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 public class Panel extends JPanel { @Override public void paintComponent( Graphics g ) { g.drawImage( new IconImage( "image1.png" ).getImage() , 0 , 0 , this.getWigth() , this.getHeight() , null ) } // Pour changer le background public void set backGround( Image image ) { Graphics g = this.getGraphics() ; // On récupère le Graphics g.drawImage( image , 0 , 0 , this.getWigth() , this.getHeight() , null ) ); } }
Mon objectif est de créer un Jpanel avec une image de fond image1, puis d'y insérer image2 dans le même Graphics.
Seulement, bien que le code compile et s’exécute, l'image2 n'est jamais affiché dans ma fenêtre.
Voilà je suis un peu perdu, je ne sais pas comment faire pour que l'image2 soit insérer dans le Graphics. J'ai essayé de faire des paint(), repaint(), paintAll(), validate(), revalidate() un peu partout mais sans succès.
Quelqu'un a une solution ?
Par contre je ne peux pas recréer une autre fenêtre, car mon objectif est d'y insérer des sprites dans la fenêtre par la suite.
Et si vous trouvez que mon code est sale ou bizarre, n'hésitez pas à le me faire remarquer
Je ne maîtrise encore pas du tout les interfaces graphiques en swing et awt, donc je suis ouvert à toutes les suggestions permettant de m'améliorer.
Voilà merci d'avance![]()
Partager