import awt.*; import browser.Applet; /** Program: EssentialRunner application Purpose: simple demonstration of a runnable applet @author john@december.com @version 1.54; 22 July 1995 */ public class EssentialRunner extends Applet implements Runnable { private Thread flow; boolean done, pause; static int width = 500; static int interval = 5; int x, y, cycle; public void init() { resize(width, width); } public void paint(Graphics g) { g.SetColor(Color.green); g.drawLine(width/2, width/2, x, y); y = y + interval; if (y > width) { y = 0; cycle++; if ((cycle%2) == 0) x = cycle*interval; else x = width - cycle*interval; } } public void update(Graphics g) { paint(g); } public void start() { done = false; pause = false; x = 0; y = 0; cycle = 0; flow = new Thread(this); flow.start(); } public void run() { try { while (!done) { Thread.sleep(interval); if (!pause) repaint(); } } } public void stop() { done = true; flow.stop(); } public void mouseUp(int x, int y) { pause = !pause; } }