Иллюстрированный самоучитель по Java

Анимация

Есть несколько способов создать анимацию. Самый простой из них – записать заранее все необходимые кадры в графические файлы, загрузить их в оперативную память В виде Объектов класса Image или Bufferedlmage и выводить по очереди на экран.

Это сделано в листинге 15.9. Заготовлено десять кадров в файлах run1.gif, run2.gif,. .run10.gif. Они загружаются в массив img[] и выводятся на экран циклически 100 раз, с задержкой в 0.1 сек.

Листинг 15.9. Простая анимация.

import java.awt.*;
import java.awt.event.*;
class SimpleAnim extends Frame {
    private Image[] img = new Image[10];
    private int count;
    SimpleAnim(String s) {
        super(s);
        MediaTracker tr = new MediaTracker(this);
        for (int k = 0; k < 10; k++) {
            img[k] = getToolkit().getlmage("run" + (k + 1) + ".gif");
            tr.addlmage(img[k], 0);)
        try {
            tr.waitForAll(); // Ждем загрузки всех изображений
        } catch (InterruptedException e) {}
        setSize(400, 300);
        setVisible(true);
    }
    public void paint(Graphics g) {
        g.drawImage(img[count % 10], 0, 0, this);
    }
    // public void update(Graphics g){ paint(g); }
    public void go() {
        while (count < 100) {
            repaint(); // Выводим следующий кадр
            try { // Задержка в 0.1 сек
                Thread.sleep(100);
            } catch (InterruptedException e) {}
            count++;
        }
    }
    public static void main(String[] args) {
        SimpleAnim f = new SimpleAnim(" Простая анимация");
        f.go();
        f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent ev) {
                    System.exit(0);
                }
            }
        }
    }
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.