// MovingDot: move a circle from an arbitrary position to (0,0) // 20091128 erikt(at)xs4all.nl import java.awt.*; import java.applet.*; import java.awt.event.*; public class MovingDot extends Applet implements Runnable { private int MINX = 100; // minimale x-startpositie (pixels) private int MAXX = 180; // maximale x-startpositie (pixels) private int SLEEP = 50; // wachttijd (milliseconden) private int DIAMETER = 20; // diameter cirkel (pixels) // kies een willekeurige schermpositie private int x = MINX + (int) (Math.random()*(MAXX-MINX+1)); private int y = MINX + (int) (Math.random()*(MAXX-MINX+1)); Thread t; // variabele, toegankelijk vanuit alle methods public void run() { // zolang de cirkelpositie niet gelijk is aan (0,0) while (x > 0 || y > 0) { if (x > 0) x--; // verlaag x-positie als deze groter is dan 0 if (y > 0) y--; // verlaag y-positie als deze groter is dan 0 repaint(); // teken de cirkel // wacht 50 milliseconden try { Thread.sleep(SLEEP); } catch (InterruptedException e) { break; } } } public void paint(Graphics g) { // teken de cirkel g.setColor(Color.RED); g.fillOval(x,y,DIAMETER,DIAMETER); } public void start() { t = new Thread(this); // maak nieuwe thread t t.start(); // start thread t } }