// EJEMPLO DE UN HILO -ANIMACION- import javax.swing.*; import java.awt.event.*; import java.awt.*; class Cositas extends JFrame { Dibujo JP = null; Frame Ventana_2 = null; public static void main(String R[]) { new Cositas(); } public Cositas() { this.setBounds(100, 100, 800, 300); this.setVisible(true); JP = new Dibujo(); this.add(JP); JP.setBounds(0,0,800, 300); JP.setVisible(true); } protected void processWindowEvent(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) System.exit(0); } } class Dibujo extends JPanel implements Runnable { Thread Hilo = new Thread(this); int x = 10; public Dibujo() { Hilo.start(); } // 3.- Se implementa el cuerpo del mEtodo start de la interfaz Runnable public void start( ) { if (Hilo == null) { Hilo.start(); } } // 4.- Se implementa el cuerpo del mEtodo run de la interfaz Runnable public void run( ) { // AQUI VA LA ANIMACION while(x < 300) { // 5.- Se pone la pareja try-catch para interceptar una posible excepciOn. try { Thread.sleep(500); } catch(InterruptedException r) {// CODIGO PARA LA ATENCION A LA INTERRUPCION } x += 10; repaint(); } } public void paint(Graphics G) { G.clearRect(0, 0, 400, 250); G.drawString("RAFA", x, 10); // (cadena, x, y) } }