R03.java_



import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class RESP_3 extends JFrame
{
	Ventana_Animacion Monito, Rueda, Carita, Trazo;

	public RESP_3 ()
	{
		getContentPane().setLayout(null);	// Contenedor nulo
		setTitle("4 Animaciones");	// Titulo de la ventana
		setResizable(false);			// No es redimensionable
		setLocation(100, 100);			// Posicion
		setSize(new Dimension(800, 600));	// Dimensiones

		Monito = new Ventana_Animacion(6, 1);
		getContentPane().add(Monito);
		Monito.setBounds(0, 0, 390, 290);
		Monito.start();
		
		Rueda = new Ventana_Animacion(4, 2);
		getContentPane().add(Rueda);
		Rueda.setBounds(400, 0, 390, 290);
		Rueda.start();
		
		Carita = new Ventana_Animacion(2, 3);
		getContentPane().add(Carita);
		Carita.setBounds(0, 300, 390, 290);
		Carita.start();
		
		Trazo = new Ventana_Animacion(0, 0);
		getContentPane().add(Trazo);
		Trazo.setBounds(400, 300, 390, 290);
		Trazo.start();
		
		this.show();
		setBackground(Color.blue);
	}

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

	protected void processWindowEvent(WindowEvent e)
	{
		super.processWindowEvent(e);
		if (e.getID() == WindowEvent.WINDOW_CLOSING)
		{
			System.exit(0);
		}
	}
}


class Ventana_Animacion extends JPanel implements Runnable
{
	Thread Hilo;
	Toolkit toolkit = Toolkit.getDefaultToolkit();
	Image Figura[];
	int I = 0;		// I = Indice
	int NI;			//  NI = Numero de Imagenes
	int Tipo;
	
	
	Ventana_Animacion(int NI, int Tipo)
	{
		Figura = new Image[NI];
		Figura = Lee_Imagenes(Tipo);
		this.Tipo = Tipo;
		this.NI = NI;
	}
	
	Image[] Lee_Imagenes(int Tipo)
	{
		switch (Tipo)
		{
			case 1:
				Figura[0] = toolkit.getImage("Graficos/Monito1.gif");
				Figura[1] = toolkit.getImage("Graficos/Monito2.gif");
				Figura[2] = toolkit.getImage("Graficos/Monito3.gif");
				Figura[3] = toolkit.getImage("Graficos/Monito4.gif");
				Figura[4] = toolkit.getImage("Graficos/Monito5.gif");
				Figura[5] = toolkit.getImage("Graficos/Monito6.gif");
				break;
			case 2:
				Figura[0] = toolkit.getImage("Graficos/Rueda1.jpg");
				Figura[1] = toolkit.getImage("Graficos/Rueda2.jpg");
				Figura[2] = toolkit.getImage("Graficos/Rueda3.jpg");
				Figura[3] = toolkit.getImage("Graficos/Rueda4.jpg");
				break;
			case 3:
				Figura[0] = toolkit.getImage("Graficos/Carita1.gif");
				Figura[1] = toolkit.getImage("Graficos/Carita2.gif");
		}
		return Figura;
	}

	public void start( )
	{
		if (Hilo == null)
		{
			Hilo = new Thread(this);
			Hilo.start( );
		}
	}
	
	public void run( )
	{
		while(true)
		{
			try { Thread.sleep(500); }
			catch(InterruptedException r) {}
			I =  (I == NI-1) ? 0 : I+1;
			repaint();
		}
	}
	
	public void paint(Graphics G)
	{
		if (Tipo != 0)
			G.drawImage(Figura[I], 0, 0, this);
		else
		{
			G.clearRect(0, 0, 280, 180);
			// Trazo de la carita
		}
	}
}