// SE MUESTRA UNA CARITA HACIENDO GUINIOS
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
class CaritaAnimada extends JFrame
{
Grafico G = new Grafico();
public static void main(String R[]) { new CaritaAnimada(); }
public CaritaAnimada()
{
super("Animacion 2.0");
setBounds(0, 0, 800, 500);
setVisible(true);
add(G); G.setBounds(0, 0, 800, 500);
}
protected void processWindowEvent(WindowEvent e)
{ if (e.getID() == WindowEvent.WINDOW_CLOSING) System.exit(0); }
}
class Grafico extends JPanel implements Runnable
{
Thread H = null;
int Objeto = 1; // 1 Izq, 2 Der, 3 Boca
int Cerrado = 2, Abierto = 40;
public Grafico()
{
H = new Thread(this);
H.start();
}
public void paint(Graphics G)
{
G.setColor(Color.blue); G.fillRect(0, 0, 800, 500);
G.setColor(Color.white);
G.drawOval(50, 50, 300, 300);
Ovalo(100, 120, 80, 40, G, 1);
Ovalo(220, 120, 80, 40, G, 2);
Ovalo(120, 250, 160, 60, G, 3);
G.drawRect(200, 150, 10, 80);
}
void Ovalo(int x, int y, int w, int h, Graphics G, int Elem)
{
if (Elem == Objeto) h = Cerrado;
G.drawOval(x, y, w, h);
}
public void run()
{
while(true)
{
repaint();
try { H.sleep(1000); } catch (InterruptedException e) {}
Objeto++;
if (Objeto == 4) Objeto = 1;
}
}
}