I am trying to display several PNG Images on a JLayeredPane with overlapping.
Here is the current code for generating the JLabel containing the image and adding it to the JLayeredPane :
BufferedImage im = ImageIO.read(new File(fname));
JLabel uLabel = createLabelForImage(im);
mapLayeredPane.add(uLabel, new Integer(zIndex++), 1);
And the createLabelForImage() method :
protected JLabel createLabelForImage(BufferedImage im) {
JLabel label = new JLabel(new ImageIcon(im));
label.setVerticalAlignment(JLabel.TOP);
label.setHorizontalAlignment(JLabel.CENTER);
label.setOpaque(true);
label.setBounds(0, 0, im.getWidth(), im.getHeight());
return label;
}
What I get is the objects are correctly overlapping but the transparent background of the PNG images is replaced with a kind of white-gray color.
Is it a problem with ImageIcon ? With JLayeredPane ? Maybe I have to set something like label.setBakground(sort_of_transparency_code) or something like that ?
Thanks in advance 🙂
Your label should not be opaque if you want to see through, see JComponent.setOpaque