Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sum.komponenten.*;
- import sum.werkzeuge.*;
- import sum.ereignis.*;
- import java.util.*;
- /**
- * @author
- * @version
- */
- public class Uhrfeld implements Runnable
- {
- private Buntstift stift;
- private int x;
- private int y;
- private int radius;
- private int aktwinkel;
- private int farbe;
- private int verzoegerung;
- private int startwinkel;
- private Thread t;
- /**
- * Konstruktor der Uhr
- * @param x x-Koordinate (Mittelpunkt der Uhr)
- * @param y y-Koordinate (Mittelpunkt der Uhr)
- * @param r Radius der Uhr in Pixeln
- * @param startwinkel Startwinkel der Uhr
- * @param verzoegerung Verzögerung bis sich der Zeiger um 1 Grad bewegt
- */
- public Uhrfeld(int x,int y,int r,int startwinkel,int verzoegerung)
- {
- this.x = x;
- this.y = y;
- this.verzoegerung = verzoegerung;
- radius = r;
- aktwinkel = this.startwinkel = startwinkel;
- stift = new Buntstift();
- t = new Thread(this);
- t.start();
- }
- /**
- * Aktuellen Winkel des Zeigers setzen
- * @param w Gewünschter Winkel
- */
- public void setzeWinkel(int w) {
- aktwinkel = w;
- zeichne();
- }
- /**
- * zeichne den Zeiger mit den aktuellen Parametern
- */
- public void zeichne() {
- stift.setzeFarbe(farbe);
- stift.hoch();
- stift.setzeLinienBreite(2);
- stift.bewegeBis(x,y);
- stift.dreheBis(-aktwinkel);
- stift.runter();
- stift.bewegeUm(radius);
- }
- /**
- * Setze die Farbe des Zeigers
- */
- public void setzeFarbe(int f) {
- farbe = f;
- }
- /**
- * Hole die Farbe des Zeigers
- */
- public int getFarbe() {
- return farbe;
- }
- /**
- * Implementierung des Interfaces für den Thread durch die run Methode
- */
- public void run() {
- while(true) {
- try {
- Thread.sleep(verzoegerung);
- aktwinkel++;
- // Anfangswinkel setzen
- if(aktwinkel == (startwinkel+360)) {
- aktwinkel = startwinkel+1;
- // Farbwechsel
- if(farbe == Farbe.BLAU) {
- setzeFarbe(Farbe.GELB);
- }
- else {
- setzeFarbe(Farbe.BLAU);
- }
- }
- zeichne();
- }
- catch(Exception e) {}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement