Skip to content

Instantly share code, notes, and snippets.

@jujogracu
Created November 4, 2012 03:50
Show Gist options
  • Select an option

  • Save jujogracu/4010081 to your computer and use it in GitHub Desktop.

Select an option

Save jujogracu/4010081 to your computer and use it in GitHub Desktop.
JPanel en el cual se muestran distintas imagenes despues de 5 segundos
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class Paisaje extends JPanel implements Runnable {
public Paisaje(){
//Se carga la imagen
paisajes = ( new ImageIcon( "paisaje.jpg" ) ).getImage();
//Se asigna la posicion en x dentro del JPanel
posicion_x = 0;
//Se asigna la posicion en y dentro del JPanel
posicion_y = 20;
//Se asigna el valor de los segundos
segundos = 5;
//se asigna el valor del frame
frame = 0;
}
//---------- Metodo implementado de Runnable que controla el cambio de imagen ----------//
public void run(){
while( true ){
try{
//Actualiza el pintado del JPanel
repaint();
//Se espera 1 segundo
Thread.sleep(1000);
if( segundos > 0 ){
segundos--;
}
else{
//Ya habiendo transcurrido los 5 segundos cambia de imagen
segundos = 5;
//Si va en la imagen 4 regresa a la 1
if( frame < 4 ){
frame++;
}
else{
frame = 0;
}
}
//Actualiza el pintado del JPanel
repaint();
}catch( Exception e ){ e.printStackTrace(); }
}
}
//--------------------------------------------------------------------------------------//
//-------------------- Se utiliza para pintar la imagen en el JPanel -------------------//
public void paint( Graphics g ){
//Pinta con azul un rectangulo
g.setColor(Color.BLUE);
g.fillRect(0, 0, 301, 20);
//Escribe un texto de color blanco
g.setColor(Color.WHITE);
g.drawString(segundos+"", 145, 15);
//Segun el frame calcula en la posicion en donde se encuentra dentro de la imagen
int frameX = ( frame % 2 ) * ancho;
int frameY = ( frame / 2) * alto;
//Dibuja el frame especificado en la posicion indicada
g.drawImage(paisajes, posicion_x, posicion_y, posicion_x + ancho, posicion_y + alto,
frameX, frameY, frameX + ancho, frameY + alto, this);
}
//--------------------------------------------------------------------------------------//
//Posicion en x, dentro del JPanel
int posicion_x;
//Posicion en y, dentro del JPanel
int posicion_y;
//Ancho de los frames, no de la imagen en general
int ancho = 301;
//Alto de los frames, no de la imagen en general
int alto = 301;
//Frame que hay en las imagenes (en este caso 4)
int frame;
//Segundos en que aparece cada imagen
int segundos;
//Imagen a cargar de 603x603
Image paisajes;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment