Я пытаюсь отобразить несколько изображений PNG на JLayeredPane с перекрытием.Прозрачные JLabels на JLayeredPane
Вот текущий код для генерации JLabel, содержащий изображение и добавить его в JLayeredPane:
BufferedImage im = ImageIO.read(new File(fname));
JLabel uLabel = createLabelForImage(im);
mapLayeredPane.add(uLabel, new Integer(zIndex++), 1);
и метод createLabelForImage():
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;
}
Что я получаю объекты правильно перекрываются, но прозрачный фон изображений PNG заменяется своего рода бело-серым цветом.
Это проблема с ImageIcon? С JLayeredPane? Может быть, мне нужно установить что-то вроде label.setBakground (sort_of_transparency_code) или что-то в этом роде?
Заранее спасибо :)
Право, это было его! SetOpaque() был поставлен здесь во время тестов, потому что JLabels вообще не отображался в первый раз ... Я забыл об этой строке ... теперь намного лучше. Большое спасибо :) . – Undo