Java - фон JLabel не полностью прозрачен? - PullRequest
2 голосов
/ 18 ноября 2010

У меня есть JLabel со значком коробки.Я создаю изображение иконы в фотошопе.Это изображение в формате png-24 с полностью стертым фоном.

Но при перемещении поверх темного фона вы можете видеть, что фон не полностью прозрачен:

image


РЕДАКТИРОВАТЬ # 2:

Изображение прозрачно.Я даже прошел уроки по фотошопу, чтобы убедиться, что я создаю прозрачное изображение правильным образом.Кажется, проблема в Java (и JLabels).

Как это исправить?

Ответы [ 2 ]

4 голосов
/ 18 ноября 2010

Я проверил ваше изображение, оно не прозрачное. конечно, в этом причина.

<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 голос
/ 18 ноября 2010

Вы можете попробовать в формате GIF и соответственно установить альфа-значение. Я не мог видеть ваше изображение прямо сейчас. Ну, убедитесь, что изображение, которое вы создаете, является прозрачным. В противном случае вы не получите его так, как вам нужно.

образец руководства для создания прозрачного изображения: LINK

...