// MUESTRA UN MUNIEQUITO BRINCANDO -USO DE IMAGENES-
import java.awt.*;
import java.awt.event.*;
public class GraphicUpdateApp extends Frame implements Runnable
{
Thread animation;
int frameDelay = 200;
Image frames[];
int numFrames;
int currentFrame = 0;
long lastDisplay = 0;
boolean fullDisplay = false;
MediaTracker tracker;
int screenWidth = 400;
int screenHeight = 400;
public static void main(String args[]) { GraphicUpdateApp app = new GraphicUpdateApp(); }
public GraphicUpdateApp()
{
super("Updated Graphic Animation");
setup();
pack();
setSize(screenWidth,screenHeight);
addWindowListener(new WindowEventHandler());
show();
animation = new Thread(this);
animation.start();
}
void setup()
{
setupMenuBar();
setFont(new Font("default",Font.BOLD,18));
Toolkit toolkit = getToolkit();
frames = new Image[4];
frames[0] = toolkit.getImage("stickman1.gif");
frames[1] = toolkit.getImage("stickman2.gif");
frames[2] = toolkit.getImage("stickman3.gif");
frames[3] = toolkit.getImage("stickman4.gif");
numFrames = frames.length;
tracker = new MediaTracker(this);
for(int i=0;i<numFrames;++i) tracker.addImage(frames[i],i);
}
void setupMenuBar()
{
MenuBar menuBar = new MenuBar();
Menu fileMenu = new Menu("File");
MenuItem fileExit = new MenuItem("Exit");
fileExit.addActionListener(new MenuItemHandler());
fileMenu.add(fileExit);
menuBar.add(fileMenu);
setMenuBar(menuBar);
}
public void paint(Graphics g)
{
if(allLoaded()) g.drawImage(frames[currentFrame],125,80,this);
else
{
String stars = "*";
for(int i=0;i<currentFrame;++i) stars += "*";
g.drawString(stars,60,60);
}
}
boolean allLoaded()
{
for(int i=0;i<numFrames;++i)
if(tracker.statusID(i,true) != MediaTracker.COMPLETE) return false;
return true;
}
public void run()
{
do
{
long time = System.currentTimeMillis();
if(time - lastDisplay > frameDelay)
{
if(allLoaded())
{
if(fullDisplay) repaint (115,160,160,90);
else
{
fullDisplay = true;
repaint();
}
}
else repaint();
try { Thread.sleep(frameDelay); } catch(InterruptedException ex) { }
++currentFrame;
currentFrame %= numFrames;
lastDisplay = time;
}
} while (true);
}
class MenuItemHandler implements ActionListener, ItemListener
{
public void actionPerformed(ActionEvent ev)
{
String s=ev.getActionCommand();
if(s=="Exit") System.exit(0);
}
public void itemStateChanged(ItemEvent e) { }
}
class WindowEventHandler extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } }
}