// ArctanX_anim.java // // Programmed by Hideaki `ArctanX' TANABE Aug19 1996 import java.awt.*; import java.applet.*; public class ArctanX_anim extends Applet implements Runnable { Image im[] = new Image[12]; Thread kick = null; int i, j = 0; int direction = 1; // -1...left, 1...right Button left, right, stop; public void init() { setBackground(Color.black); left = new Button("<<"); right = new Button(">>"); stop = new Button("Stop"); add(left); add(stop); add(right); for (i = 0; i <= 11; i++) { im[i] = getImage(getDocumentBase(), "images/arctanx" + i + ".gif"); } } public void start() { if (kick == null) { kick = new Thread(this); kick.start(); } } public void run() { while (true) { if (j > 11) { j = 0; } if (j < 0) { j = 11; } repaint(); try { Thread.sleep(100); } catch (InterruptedException e) { } // System.out.println("j = " + j); j = j + direction; } } public void paint(Graphics g) { g.drawImage(im[j], 100, 50, this); } public void stop() { if (kick != null) { kick.stop(); kick = null; } } public boolean action(Event e, Object o) { String label = o.toString(); if (e.target instanceof Button) { if (label.equals("<<")) { // System.out.println("You pushed <<"); direction = -1; kick.resume(); } else if (label.equals(">>")) { // System.out.println("You pushed >>"); direction = 1; kick.resume(); } else if (label.equals("Stop")) { // System.out.println("You pushed Stop"); kick.suspend(); } } return true; } }