Анимация
Есть несколько способов создать анимацию. Самый простой из них – записать заранее все необходимые кадры в графические файлы, загрузить их в оперативную память В виде Объектов класса 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); } } } } }