Bonjour,

J'essaye de superposer 2 objets avec une transparence entre les deux pour laisser apparaître un objet (=JPanel) sous une image (un JLabel).

J'ai donc utilisé un JLayeredPane dans lequel j'ai mis JLabel définit comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
        labFiligranne = new javax.swing.JLabel() {
            public void paint(Graphics g) {
                Graphics2D g2 = (Graphics2D) g.create();
                g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
                super.paint(g2);
                g2.dispose();
            }
        };
placé dans la couche javax.swing.JLayeredPane.PALETTE_LAYER.


Mon JPanel est placé dans la couche javax.swing.JLayeredPane.DEFAULT_LAYER

Le JLabel apparaît bien transparent à 50% mais ne laisse rien voir du JPanel...

Est-ce que la technique est mauvaise ?

Précision : le JPanel contient, in fine, un Canvas. Je ne peux pas me débarrasser de ce composant HeavyWeight. Est-ce que ce mix de LightWeight et HeavyWeight peut être la cause du problème ? Si oui comment le contourner ?

Merci