Ventana desplazante [java]

Hola a todos, les dejo un pequeño codigo que he hecho para implementar una ventana que se desplaza al pulsar un boton, se puede indicar la salida si es por el eje X o Y.

Clases utilizadas:
# java.awt.BorderLayout;
# java.awt.Toolkit;
# java.awt.Window;
# java.awt.event.ActionEvent;
# java.awt.event.ActionListener;
# javax.swing.JButton;
# javax.swing.JFrame;
# javax.swing.JTextArea;
# Thread
# InterruptedException



import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class VentanaDesplazante extends JFrame {

    private HiloDesplazador hilo;
    private JButton btnCerrar;
    private JTextArea areaTexto;

    public VentanaDesplazante(boolean direccionSalidaX) {
        iniciarComponentes();
        setLocationRelativeTo(null);
        hilo = new HiloDesplazador(this, direccionSalidaX);
        String texto = "Ventana Desplazante por eje ";
        texto += direccionSalidaX ? "X" : "Y";
        setTextoArea(texto);
    }

    private void iniciarComponentes() {
        setTitle("Ventana Desplazante");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new BorderLayout());
        areaTexto = new JTextArea(5, 5);
        areaTexto.setEditable(false);
        add(areaTexto, BorderLayout.CENTER);
        btnCerrar = new JButton();
        btnCerrar.setText("Cerrar");
        btnCerrar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                hilo.start();
            }
        });

        add(btnCerrar, BorderLayout.SOUTH);
        setSize(250, 200);
        setVisible(true);
    }

    private void setTextoArea(String texto) {
        areaTexto.setText(texto);
    }

    public static void main(String[] args) {
        new VentanaDesplazante(true);
        new VentanaDesplazante(false);
    }

    class HiloDesplazador extends Thread {

        private boolean direccionX = true;
        private boolean continuar = true;
        private Window ventana;

        public HiloDesplazador(Window ventana, boolean direccionX) {
            this.ventana = ventana;
            this.direccionX = direccionX;
        }

        /**
         * Indica si la direccion de salida es el eje X
         *
         * @param direccionX
         */
        public void setDireccionX(boolean direccionX) {
            this.direccionX = direccionX;
        }

        @Override
        public void run() {
            try {
                while (continuar) {
                    if (direccionX) {
                        salePorX();
                    } else {
                        salePorY();
                    }
                }
            } catch (InterruptedException e) {
                System.err.println(e);
            }
        }

        private void salePorX() throws InterruptedException {
            int x = ventana.getLocation().x;
            int y = ventana.getLocation().y;
            ventana.setLocation(x + 50, y);
            int maxX = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
            if (x > maxX) {
                continuar = false;
                ventana.dispose();
            }
            Thread.sleep(20);
        }

        private void salePorY() throws InterruptedException {
            int x = ventana.getLocation().x;
            int y = ventana.getLocation().y;
            ventana.setLocation(x, y + 20);
            int maxY = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
            if (y > maxY) {
                continuar = false;
                ventana.dispose();
            }
            Thread.sleep(20);
        }
    }
}


Espero que les sirva y cualquier pregunta estoy a su disposicion.
Saludos

(COMENTARIOS FUERA DE LUGAR SERAN BORRADOS Y BLOQUEADOS)

3 comentarios - Ventana desplazante [java]

@SuperNintendoChalmers
Como lo incluyo en mi HTML?
@wyxx
Necesitas pasarlo a una applet, y con la etiqueta <applet> de html.
@DeepWolf
al menos pudiste poner un gif o un video del resultado final.
@wyxx
Muy buen efecto!