Bonjour,
Je voudrais mettre une image en fond et par dessus un pleins de petites images.
Pour ce faire j'utilise un JLayeredPane dont la couche 0 est mon image, et la seconde couche est un JPanel.
Pour la seconde couche j'ai créé une classe MonJPanel étendant JPanel contenant un GridLayout dans lequel j'ajoute des images.

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
 
public class MonJPanel extends JPanel {
 
    public static final int TAILLE = 7;
 
    private JLabel[][] grille = null;
 
    public MonJPanel() {
        super(new GridLayout(7, 7));
        this.setPreferredSize(new Dimension(343, 343));
        grille = new JLabel[TAILLE][TAILLE];
        for (int i = 0 ; i < TAILLE ; i++) {
            for (int j = 0 ; j < TAILLE ; j++) {
                grille[i][j] = new JLabel(new ImageIcon(getClass().getResource("/algo/image.png")));
                add(grille[i][j]);
            }
        }
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
MonJPanel pane = new MonJPanel();
JLayeredPane lpane = new JLayeredPane();
JLabel imageJeu = new JLabel(new ImageIcon(getClass().getResource("/algo/jeu.png")));
 
imageJeu.setBounds(0, 0, 343, 343);
lpane.add(imageJeu, new Integer(0));
 
pane.setBounds(0, 0, 343, 343);
lpane .add(plateau, new Integer(1));
Or toutes les images de MonJPanel sont superposées (en haut à gauche).

Quand je n'ai qu'une seule couche ça marche trés bien, l'image s'affiche bien, mais lors de l'ajout de MonJPanel à lpane, on ne voit plus l'image.

J'aimerai savoir si vous aviez une idée de ce qui cloche, et si les JLayeredPane géraient la transparence.