ANIMACION DE UN APPLET
Se crea un applet con el asistente de Java con el nombre AnimApplet, con lo que se creara un fichero en html y otro AnimApplet.java.
El codigo de la pagina web sera el siguiente:
<HTML>
<HEAD>
<
<TITLE> Animacion de un Applet</TITLE>
</HEAD>
<BODY>Aqui tiene el applet de animacion.
<P>
<APPLET code="AnimApplet.java" codebase="./" height=200 width=200 VIEWASTEXT> </APPLET>
</BODY>
</HTML>
Y el codigo en java es:
import java.awt.*;
public class AnimApplet
extends java.applet.Applet implements Runnable
{
Thread
thrAnimation;
Graphics
grphApplet;
//
TODO 1: Crear una matriz para manejar
las im‡genes
Image
imgList[];
int nCurrent;
final
int MAX = 42;
final
String BASENAME = "e";
final
String EXTNAME = ".bmp";
final
int PAUSE = 50;
String
strMessage;
//
TODO 3: Declarar una etiqueta booleana bAllLoaded
boolean bAllLoaded;
int nImgWidth;
int nImgHeight;
public
void init()
{
super.init();
strMessage = "Cargando imagenes...";
repaint();
}
public
void run()
{
grphApplet = getGraphics();
nCurrent = 0;
//
TODO 3: Si no se han cargado las im‡genes,
cargarlas
if(!
bAllLoaded)
{
imgList = new Image[MAX];
//
TODO 3: Crear un MediaTracker
MediaTracker tracker = new MediaTracker(this);
for(int i = 0; i
< MAX; i ++)
{
//
TODO 3: Invocar getImage para cada imagen
imgList[i] = getImage(getDocumentBase(),
BASENAME + i +
EXTNAME);
//
TODO 3: Invocar addImage para cada imagen
tracker.addImage(imgList[i], 0);
}
//
TODO 3: Esperar a que terminen de descargarse las im‡genes
try
{
tracker.waitForAll();
bAllLoaded = ! tracker.isErrorAny();
strMessage = "";
}
catch(InterruptedException e)
{
}
//
TODO 3: Si no se carg— la imagen, visualizar un mensaje de error
if(!
bAllLoaded)
{
stop();
strMessage = "Error al cargar
las imagenes";
repaint();
return;
}
nImgHeight = imgList[0].getHeight(this);
nImgWidth = imgList[0].getWidth(this);
}
repaint();
while(true)
{
try
{
displayFile(grphApplet);
nCurrent ++;
if(nCurrent == MAX)
nCurrent = 0;
Thread.sleep(PAUSE);
}
catch(InterruptedException e)
{
}
}
}
void
displayFile(Graphics g)
{
if(!
bAllLoaded)
return;
//
TODO 2: Modificar displayFile
para visualizar la imagen
// g.clearRect(10, 10, 100, 15);
// g.drawString(BASENAME + nCurrent
+ EXTNAME, 10, 20);
g.drawImage(imgList[nCurrent],
(getSize().width - nImgWidth) / 2,
(getSize().height - nImgHeight) /
2,
null);
}
public
void paint(Graphics p1)
{
p1.drawString(strMessage, 10, 20);
}
public
void start()
{
if(thrAnimation == null)
{
thrAnimation = new Thread(this);
thrAnimation.start();
}
}
public
void stop()
{
if(thrAnimation != null)
{
thrAnimation.stop();
thrAnimation = null;
}
}
}