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