Рисование анимированного изображения (GIF) на прозрачном окне в Java - PullRequest
0 голосов
/ 04 апреля 2020

Исходя из этого ответа , он прекрасно работает для рисования анимированного изображения на обычном java .awt. Окно выглядит так:

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Window;
import java.io.IOException;
import java.net.URL;

import javax.swing.ImageIcon;

public static void main(String[] args) throws AWTException, IOException {
    Window w = new Window(null) {
        @Override
        public void paint(Graphics g) {
            super.paint(g);
            try {
                java.awt.Image icon = new ImageIcon(new URL("http://i.stack.imgur.com/KSnus.gif")).getImage();
                g.drawImage(icon, 500, 500, this);
                g.drawRect(100, 100, 100, 100);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        public void update(Graphics g) {
            paint(g);
        }
    };
    w.setBounds(w.getGraphicsConfiguration().getBounds());
    // w.setBackground(new Color(0, true));
    w.setVisible(true);
}

Этот блок кода занимает из здесь и дополнен изображением, нарисованным из первой топи c. Моя цель - нарисовать анимированный GIF поверх экрана. Но как только я раскомментирую строку w.setBackground(new Color(0, true));, чтобы сделать windows прозрачным, GIF больше не отображается. Если я рисую прямоугольник или что-то еще, это прекрасно работает даже с прозрачным окном.

Есть ли какая-то причина, по которой я скучаю? Любой совет был бы полезен:)

Важно: Этот вопрос не связан с прозрачными GIF-файлами, это - java .awt.Window, которое является прозрачным.

...