27.8 Die Klasse Ampel
 
Funktionalität der Ampel Unsere Ampel kann in zwei Zuständen existieren, sie kann auf grün oder auf rot geschaltet sein. Diese Zustände speichern wir unter farbe (der Ampel) vom Typ String. wir sie uns aus zwei Kreisen (lichtOben, lichtUnten) und zwei Quadraten (rahmenOben, rahmenUnten) zusammengesetzt vorstellen. Zwei Methoden schalteRot() und schalteGruen() schalten, wie ihre Namen sagen, die Ampel auf rot bzw. grün. Die Ampel kann man zeichnen lassen mit Hilfe der Methode zeigeDich(Graphics g) die dieses Mal keine geerbte Methode überschreibt. Sie benutz aber die (unterschiedlichen) Methoden zeigeDich(Graphics g)der assozierten Klassen.
Das unten dargestellte Klassendiagramm, zeigt alle mit der Klasse
Ampel assozierte Klassen und deren Oberklassen. Ballon und KQuadrat fehlen natürlich, da sie für die Ampel nicht relevant sind. Die Rahmen in Registerform verdeutlichen die Paketstruktur. Ampel gehört also zum Paket tauglichkeitstester\test.

Download:
Ampel.java
package tauglichkeitstester.test;
import tauglichkeitstester.figur.*;

import java.awt.*;

public class Ampel {

  protected Quadrat rahmenOben, rahmenUnten;
  protected Kreis lichtOben, lichtUnten;
  protected String farbe;

  public Ampel(int xMitte, int yMitte, int breite) {
    rahmenOben  = new Quadrat(xMitte, yMitte - breite/4,
                             breite/2, Color.darkGray);
    rahmenUnten = new Quadrat(xMitte, yMitte + breite/4,
                              breite/2, Color.darkGray);
    lichtOben   = new Kreis(xMitte, yMitte - breite/4,
                          breite/4 - 2, Color.red);
    lichtUnten  = new Kreis(xMitte, yMitte + breite/4,
                           breite/4 - 2, Color.lightGray);
  }

  public void schalteRot() {
    lichtOben.setFarbe(Color.red);
    lichtUnten.setFarbe(Color.lightGray);
    farbe = "rot";
  }

  public void schalteGruen() {
    lichtOben.setFarbe(Color.lightGray);
    lichtUnten.setFarbe(Color.green);
    farbe = "grün";
  }

  public String getFarbe() {
    return farbe;
  }

  public void zeigeDich(Graphics g) {
    rahmenOben.zeigeDich(g);
    rahmenUnten.zeigeDich(g);
    lichtOben.zeigeDich(g);
    lichtUnten.zeigeDich(g);
  }
}
  Der Quelltext ist selbsterklärend. Die Werte der Parameter in den Aufrufen der Konstruktoren für die Erzeugung von rahmenOben, rahmenUnten, lichtOben und lichtUnten lassen sich durch einfache geometrische Überlegungen finden.
 
Download:
JAmpelDemo. java
Mit der Klasse JAmpelDemo lässt sich die Ampel testen. Speichern Sie dazu die Datei JAmpelDemo in das Verzeichnis Demos des Projektes.

   
zu 27.9 Die Klasse Ballonfeld
zur Startseite www.pohlig.de  (C) MPohlig 2004