La animación consiste en una japo comiendo, ayudandose de un jSlider se podra tambien acelerar o retardar la secuencia de imagenes
El proyecto consta de un JFrame con la siguiente distribucion de objetos
De una clase, la encargada de la animación animationclass.java, esta clase consiste en extender la propiedad jLabel y de añadirle un Timer, el cual es el encargado de la animacion.
El codigo de la clase animationclass.java es:
import java.awt.Dimension;
import java.util.Timer;
import javax.swing.*;
import java.awt.*;
import java.util.TimerTask;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class animationclass extends javax.swing.JLabel {
private Timer tiempo ;
private TimerTask task;
private int speed = 60;
private int frame=0;
boolean run = false;
//se crea el objeto y se redimensiona al tamaño del contenedor
public animationclass(Dimension d){
this.setSize(d);
}
//coloca una imagen en el objeto jlabel
public void setimage(int n){
this.setIcon(new javax.swing.ImageIcon(getClass().getResource("/img/japo_" + n + ".jpg")));
}
//coloca la velocidad en la variable
public void setvelocidad(int v){
this.speed= v;
}
//para la animacion
public void startAnimation() {
run=true;
tiempo = new Timer();
task = new TimerTask() {
public void run() {
frame++;
if (frame<=10){
setimage(frame);
}
else{frame=0;}
}
};
//se inicia la animacion
System.out.println("Se inicia la animacion");
tiempo.schedule(task,0,speed);
}
//detiene la animacion
public void stopAnimation() {
tiempo.cancel();
task.cancel();
run=false;
System.out.println("La animacion fue detenida");
}
}
El siguiente video muestra el resultado del proyecto, asi como tambien el diseño realizado con netbeans
5 comentarios:
Excelente aporte! Estuve mucho tiempo buscando algo como esto para incluir una pequeña animación sin necesidad de componentes extras (flash, flex, etc.).
Gracias a este ejemplo pude hacerlo en minutos, en mi caso simplemente adaptando el código para que se ejecute una sola vez la secuencia.
Saludos,
kbza
Hola, gracias, estuve todo el dia buscando algo para rotar de imagenes, y al fin lo encontre gracias a ti.
de nada
Hola disculpa q te moleste por si alcazo no tienes uno igual pero para rotar una imagen mediante matrices en netbeans 7.3
Hola! Primeramente felicitarte por las explicaciones y por tu buen blog.
Una consulta, como puedo hacer que se mueva de manera mucho mas lenta?
Mas o menos 5-10 segundos por imagen
Publicar un comentario