Animación en JFrame Linux de fondo transparente
Quiero crear un fondo totalmente transparente para un Marco (o JFrame) y hacer que muestre una animación transparente. Logré que funcione en Windows 7 x64 pero el mismo código no se ejecuta en mi Linux (Lubuntu x64 15.04).
El siguiente código muestra lo que estoy tratando de lograr: solo cópielo y péguelo. Solo quiero que el pequeño rectángulo se mueva por la pantalla sin dejar rastro.
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();
}
}
Lo que quiero lograr (como se muestra en Windows) y lo que obtengo con Lubuntu 15.04:
Solo quiero ver el pequeño movimiento cuadrado como lo que se muestra en Windows 7: no quiero ver un rastro.
Por favor, no me des el enlace de la transparencia y la documentación de la ventana de Oracle: lo he revisado tres veces.
Lo que he intentado:
Graphics2D 'copyArea ()' de un espacio transparente. (Esto solía funcionar AFAIK pero ya no funciona)Panel de vidrioAlphaCompositesetPaint ()Por favor, solo prueba tus pensamientos / código primero. Muchas de las cosas de "esto debería funcionar" ya lo he intentado y no parece ... Toda la ayuda es muy apreciada.