ANIMACION DE UN APPLET



Descarga de ficheros: PROGJAVA12.rar

 

 

 

 

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>

<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

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

Para este Applet se necesita tener 42 ficheros en bmp para realizar la animacion con el nombre de E0.bmp hasta E41.bmp

 

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;

                               }

                }

}