Исходя из этого ответа , он прекрасно работает для рисования анимированного изображения на обычном 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, которое является прозрачным.