Capturas
Codigo
package relog03dic09;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author Master
*/
public class AnimadorLogo extends JPanel
implements ActionListener{
protected ImageIcon imagenes[]; // declaramos un arreglo de imagenes
protected int totalImagenes=24, //variable de tipo entero ultima imagen
imagenActual=0, // variable de tipo entero primera imagen
retardoAnimacion=1500; //1500 milisegundos de retardo
protected Timer cronoAnimacion; // variable de tipo tiempo
public AnimadorLogo() // constructor
{
setSize(getPreferredSize()); // toma el valor de las dimenciones de la imagen
imagenes=new ImageIcon[totalImagenes]; // manda una instancia al arreglo de imagenes
for(int i=0; i<imagenes.length; ++i) // se hace un incremento en i empesando de 0 de 1 en 1 hasta el valor asignado a la variable totalImagenes
imagenes[i]=
new ImageIcon("imgrelog/relog"+i+".gif"); // genera un nombre para la imagen y lo va cambiando dependiendo el valor de i
iniciaAnimacion(); // manda a llamar el metodo iniciaAnimacion que esta mas abajo
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);//inicia los componentes del metodo graphics
if(imagenes[imagenActual].getImageLoadStatus()==MediaTracker.COMPLETE){//va cambiando la imagen
imagenes[imagenActual].paintIcon(this, g, 0, 0);// imprime la imagen en las cordenandas 0,0
imagenActual=(imagenActual+1)%totalImagenes;// cuando la imagen llega a la ultima regresa al principio
}
}
public void actionPerformed(ActionEvent e)
{
repaint();// actualiza la ventana para que no se amontonen las imagenes
}
public void iniciaAnimacion()
{
if(cronoAnimacion ==null){
imagenActual=0;
cronoAnimacion = new Timer(retardoAnimacion, this);
cronoAnimacion.start();
}
else
if(!cronoAnimacion.isRunning())
cronoAnimacion.restart();
}
public void terminaAnimacion()
{
cronoAnimacion.stop();
}
public Dimension getMinimumSize()
{
return getPreferredSize();
}
public Dimension getPreferedSize()
{
return new Dimension(500,500);
}
public static void main(String args[])
{
AnimadorLogo anim = new AnimadorLogo();
JFrame app = new JFrame("Master Animacion");
app.getContentPane().add( anim, BorderLayout.CENTER);
app.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
app.setSize ( anim.getPreferredSize().width+58+250,
anim.getPreferredSize().height+80+250);
app.show();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author Master
*/
public class AnimadorLogo extends JPanel
implements ActionListener{
protected ImageIcon imagenes[]; // declaramos un arreglo de imagenes
protected int totalImagenes=24, //variable de tipo entero ultima imagen
imagenActual=0, // variable de tipo entero primera imagen
retardoAnimacion=1500; //1500 milisegundos de retardo
protected Timer cronoAnimacion; // variable de tipo tiempo
public AnimadorLogo() // constructor
{
setSize(getPreferredSize()); // toma el valor de las dimenciones de la imagen
imagenes=new ImageIcon[totalImagenes]; // manda una instancia al arreglo de imagenes
for(int i=0; i<imagenes.length; ++i) // se hace un incremento en i empesando de 0 de 1 en 1 hasta el valor asignado a la variable totalImagenes
imagenes[i]=
new ImageIcon("imgrelog/relog"+i+".gif"); // genera un nombre para la imagen y lo va cambiando dependiendo el valor de i
iniciaAnimacion(); // manda a llamar el metodo iniciaAnimacion que esta mas abajo
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);//inicia los componentes del metodo graphics
if(imagenes[imagenActual].getImageLoadStatus()==MediaTracker.COMPLETE){//va cambiando la imagen
imagenes[imagenActual].paintIcon(this, g, 0, 0);// imprime la imagen en las cordenandas 0,0
imagenActual=(imagenActual+1)%totalImagenes;// cuando la imagen llega a la ultima regresa al principio
}
}
public void actionPerformed(ActionEvent e)
{
repaint();// actualiza la ventana para que no se amontonen las imagenes
}
public void iniciaAnimacion()
{
if(cronoAnimacion ==null){
imagenActual=0;
cronoAnimacion = new Timer(retardoAnimacion, this);
cronoAnimacion.start();
}
else
if(!cronoAnimacion.isRunning())
cronoAnimacion.restart();
}
public void terminaAnimacion()
{
cronoAnimacion.stop();
}
public Dimension getMinimumSize()
{
return getPreferredSize();
}
public Dimension getPreferedSize()
{
return new Dimension(500,500);
}
public static void main(String args[])
{
AnimadorLogo anim = new AnimadorLogo();
JFrame app = new JFrame("Master Animacion");
app.getContentPane().add( anim, BorderLayout.CENTER);
app.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
app.setSize ( anim.getPreferredSize().width+58+250,
anim.getPreferredSize().height+80+250);
app.show();
}
}
Descargar Proyecto
No hay comentarios.:
Publicar un comentario