Bonjour,

Je conçois actuellement un damier en JAVA et suis confronté à un problème graphique.

Explication :

Les cases de mon jeu de dame sont des instances de la classe "caseDamier" qui hérite de JButton :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
public class caseDamier extends JButton
Lors de la création des cases, j'ajoute une image de fond sur chacune d'entre elle grâce à la méthode setIcon :

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
 
for(int i = 1; i <= n; i++)
{
        for(int j = 1; j <= n; j++)     
        {
             caseDamier caseDame = new caseDamier(i, j);
 
              if((i+j) % 2 == 0)
              {
                 caseDame.setIcon(new ImageIcon("caseMarron.png"));
              }
              else 
              {
                  caseDame.setIcon(new ImageIcon("caseBlanche.png"));
              }
       }
}
Rendu actuel :

Nom : 366057.png
Affichages : 130
Taille : 231,4 Ko


Maintenant, mon problème est le suivant : comment faire pour ajouter les dames (qui sont également des images) sur mes caseDame? Comment superposer deux images l'une sur l'autre : en index 0, il y aurait le fond de la case (caseMarron.png ou caseBlanche.png), et au dessus d'elle, l'icone de la dame ("queen.png").


J'ai essayé en utilisant deux fois de suite la méthode setIcon mais cela ne marche pas :

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
for(int i = 1; i <= n; i++)
{
        for(int j = 1; j <= n; j++)     
        {
             caseDamier caseDame = new caseDamier(i, j);
                    
              if((i+j) % 2 == 0)
              {
                 caseDame.setIcon(new ImageIcon("caseMarron.png"));

                 if la dame doit être posée ici
                   caseDame.setIcon(new ImageIcon("queen.png"))
              }
              else 
              {
                  caseDame.setIcon(new ImageIcon("caseBlanche.png"));
               if la dame doit être posée ici
                     caseDame.setIcon(new ImageIcon("queen.png"))
              }
       }
Donc en faisant d'innombrables recherches sur google et testé plein de choses différentes (utilisation d'un JLayeredPane par exemple), j'ai pensé aboutir à quelque chose mais rien n'y fait, je n'arrive pas à avoir mes deux images l'une sur l'autre.

Voilà si quelqu'un aurait une solution à me proposer je lu en saurait très reconnaissant.