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 :

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);
		}
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
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();
	}
Il me faut absolument cette disposition de JPanel car je fait du Drag&Drop.
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 !