在Java中的透明窗口上绘制动画图像(GIF)

时间:2020-04-04 07:12:40

标签: java image graphics window awt

来自this answer,可以在正常的java.awt.Window上绘制动画图像,就像这样:

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);
}

此代码块取自here,并由第一个主题的图像作了补充。 我的目标是在屏幕顶部绘制动画GIF。但是一旦取消注释行w.setBackground(new Color(0, true));以便使窗口透明,就不再显示GIF。如果我绘制矩形或其他形状,即使在透明窗口中也可以正常工作。

我有什么理由想念我吗?任何建议都会很棒:)

重要:这个问题与透明GIF无关,不是,是透明的java.awt.Window。

0 个答案:

没有答案