java frame linux_java-透明背景JFrame Linux上的动画

我想为Frame(或JFrame)创建完全透明的背景,并使其显示透明的动画.我设法使其在Windows 7 x64上运行,但相同的代码在Linux(Lubuntu x64 15.04)上未运行.

下面的代码显示了我要实现的目标-只需复制&粘贴.我只希望小矩形在屏幕上移动而不会留下痕迹.

static int a = 0;

public static void main(String[] args) {

JFrame f = new JFrame();

f.setUndecorated(true);

f.setBackground(new Color(0, 0, 0, 0));

f.setVisible(true);

f.setSize(512, 512);

f.add(new JPanel() {

@Override

public void paintComponent(Graphics gr) {

Graphics2D g = (Graphics2D)gr;

g.setBackground(new Color(0, 0, 0, 0));

g.clearRect(0, 0, 512, 512);

g.drawRect(a, a++, 2, 2);

}

});

while(true) {

try {

Thread.sleep(30);

} catch(InterruptedException e) {

e.printStackTrace();

}

f.repaint();

}

}

我想要实现的目标(如Windows中所示)以及Lubuntu 15.04的优势:

?

我只想看到小方块的移动,就像Windows 7上显示的那样-我不想看到任何痕迹.

请不要给我Oracle透明性和窗口文档的链接-我已经三遍了.

我尝试过的

> Graphics2D的透明空间的“ copyArea()”. (这曾经可以使用AFAIK,但现在不再有效)

> GlassPane

> AlphaComposite

> setPaint()

请先测试一下您的想法/代码.我已经尝试过很多似乎“没问题”的东西,但似乎没有……所有帮助都将不胜感激.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值