Animating an Array of Images in an Application - Java 2D Graphics

Java examples for 2D Graphics:Image

Description

Animating an Array of Images in an Application

Demo Code

import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;

class AnimApp extends JComponent implements Runnable {
  Image[] images = new Image[2];
  int frame = 0;/*  www.j a  v  a 2s  .c o m*/

  public void paint(Graphics g) {
    Image image = images[frame];
    if (image != null) {
      // Draw the current image
      int x = 0;
      int y = 0;
      g.drawImage(image, x, y, this);
    }
  }

  public void run() {
    // Load the array of images
    images[0] = new ImageIcon("image1.gif").getImage();
    images[1] = new ImageIcon("image2.gif").getImage();

    // Display each image for 1 second
    int delay = 1000; // 1 second

    try {
      while (true) {
        // Move to the next image
        frame = (frame + 1) % images.length;

        // Causes the paint() method to be called
        repaint();

        // Wait
        Thread.sleep(delay);
      }
    } catch (Exception e) {
    }
  }

  public static void main(String[] args) {
    AnimApp app = new AnimApp();

    // Display the animation in a frame
    JFrame frame = new JFrame();
    frame.getContentPane().add(app);
    frame.setSize(300, 300);
    frame.setVisible(true);

    (new Thread(app)).start();
  }
}

Related Tutorials