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
}
}
}