Bonjour,
cela fait maintenant plusieurs heures que je m'énerve sur se problème dont voici l'explication :
J'ai une JFrame, dans laquelle il y a un JPanel, dans lequel il y a plusieurs autre JPanel en suivant un GridLayout, et pour finir chaque JPanel affiche une image.
Voici rapidement le code :
Et ma classe CasePanel resemble à ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Création grille de 5 lignes et 5 colonnes JPanel plateau = new JPanel(new GridLayout (5,5)); // Ajout de chaque case du plateau for(int i = 0; i<25;i++){ CasePanel caseP = new CasePanel(i); // ajout de la case au plateau plateau.add(caseP); }
Il me faut absolument cette disposition de JPanel car je fait du Drag&Drop.
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 CasePanel extends JPanel implements ConstanteTeeko { private BufferedImage image; public void paintComponent(Graphics g) { super.paintComponent(g); if( image != null){ g.drawImage(this.image, this.getX(), this.getY(), image.getWidth(), image.getHeight(), null); } } public void setImage(int pion) { // code ... // this.repaint(); }
Quand je fait un Drap&Drop d'un objet sur un CasePanel je mets une image dans celle ci.
Le problème provient d'un mauvais paint des JPanel car l'image ne s'affiche pas dans mon CasePanel.
Merci pour votre aide !
Partager