VentanaAnimacion.java_



import java.awt.*;
import javax.swing.JFrame;
import java.awt.event.*;
 import javax.swing.JPanel;
 import java.awt.Graphics;
 
// Prototipo de una aplicacon de ventana

// 1.-	Se crea la clase que extienda a la clase Frame, JFrame o Window
public class VentanaAnimacion extends JFrame
{
	AreaDeDibujo Lienzo;

	public VentanaAnimacion()
	{
		Lienzo = new AreaDeDibujo();
		this.getContentPane().setLayout(null);		// Contenedor nulo
		this.setTitle("Topicos de la animacion");	// Titulo de la ventana
		this.setResizable(false);			// No es redimensionable
		this.setLocation(100, 100);	// Posicion desde la esquina superior izquierda del monitor
		this.setSize(new Dimension(500, 250));	// Dimensiones

		this.add(Lienzo);
		Lienzo.setBounds(10,10,450,240);
		Lienzo.start();
		this.setVisible(true);
	}

	public static void main(String R[]) { new Linea1(); }

	// 3.-	Captura del evento "cerrar ventana"
	protected void processWindowEvent(WindowEvent e)
	{ super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } }
}


class AreaDeDibujo extends Canvas implements Runnable
{
	Thread Hilo;
	int x = 10;

	public void start( ) { if (Hilo == null) { Hilo = new Thread(this); Hilo.start( ); } }

	public void run( )
	{
		while(x < 300)
		{
			try { Thread.sleep(500); }
			catch(InterruptedException r) {	}
			x += 10;
			repaint();
		}
	}

	public void paint(Graphics G)
	{
		G.clearRect(0, 0, 400, 250);
		G.drawString("RAFA", x, 10);
	}

//	public static void main(String a[]) { new Animacion(); }
}