Java - JLabel背景是不是完全透明?

时间:2010-11-18 02:45:05

标签: java image transparency transparent jlabel

我有一个带有方框图标的JLabel。我在photoshop中创建了图标的图像。这是一张png-24图像,背景已完全删除。

但是当在深色背景上移动时,您可以看到背景不是完全透明的:

image


编辑#2:

图像透明。我甚至经历过photoshop教程,以确保我以正确的方式创建透明图像。问题似乎与Java(和JLabels)有关。

如何解决此问题?

2 个答案:

答案 0 :(得分:4)

我测试了你的图像,它不是透明的。当然这就是原因。

<html>
<body style="background-color:#99cccc;">
    <table>
    <tr>
        <th>your one isn't transparent</th>
        <th>this one is</th></tr>
    <tr>
        <td><img src="http://i.stack.imgur.com/BvYxM.png" style="border:5px solid green;"/></td>
        <td><img src="http://www.axdn.com/redist/axpssp_logo.png" style="border:5px solid green;"/></td></tr>
    </table>
</body>
</html>

@Gabe:将其粘贴到html文件中并在浏览器中加载。对于任何与java相关的问题,这显然不是问题。

这是一个java证明你的图像不透明并且正确的透明PNG工作正常。

public static void main(String[] args) throws Throwable
{
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    Container cp = frame.getContentPane();
    cp.setBackground(Color.RED);
    cp.setLayout(new FlowLayout());

    cp.add(new JLabel(new ImageIcon(new URL("http://i.stack.imgur.com/BvYxM.png"))));
    cp.add(new JLabel(new ImageIcon(new URL("http://www.axdn.com/redist/axpssp_logo.png"))));

    frame.pack();
    frame.setVisible(true);
}

答案 1 :(得分:1)

您可以尝试使用GIF格式并相应地设置Alpha值。 我现在看不到你的照片。 好吧,确保您正在创建的图像是透明的。 否则你根本不需要它。

制作透明图片的示例指南:LINK