# Programmierung Ampelsteuerung



## Hellge (17. Nov 2009)

Hallo,

meine Frage ist ob mir wohl jemand bei einer relativ simplen Ampelsteuerung helfen könnte, auch wenn es recht simpel sein wird für die meisten hier ist es für mich doch zu schwer und ich wäre froh über etwas Hilfe oder die Lösung....
Weiß gerade nicht wie ich die entsprechenden Dateien hier anhängen soll, falls sich wer bereit erklären würde mir das auch noch zu erklären wäre das super :bahnhof:

Danke, Hellge


----------



## Michael... (17. Nov 2009)

Weiss heisst Ampelsteuerung? Malst Du eine Ampel oder hast Du ein Feld das die Farbe wechselt oder...? Muss dieses Was auch immer auf bestimmte Ereignisse reagieren?
Erläuter mal ein bisschen und poste mal ein bisschen Code


----------



## Hellge (17. Nov 2009)

Ich habe eine Ampel die gezeichnet wird, sprich ein Rechteck und 3 Lichter, diese sollte zunächst soweit programmiert werden das sie auf Knopfdruck die verschiedenen Phasen durchläuft.

```
public class Ampel{
  // Anfang Attribute
  private Rechteck hintergrund;
  private Ampellicht oben;
  private Ampellicht mitte;
  private Ampellicht unten;
  private int zustand;
  // Ende Attribute


  public Ampel(){
    //hier fehlenden Quellcode eintragen
    oben = new Ampellicht("rot");
    mitte = new Ampellicht("gelb");
    unten = new Ampellicht("gruen");
    hintergrund = new Rechteck();
    zustand = 0;
    
  }
  // Anfang Methoden
  public Ampellicht getOben() {
    return oben;
  }

  public Ampellicht getMitte() {
    return mitte;
  }

  public Ampellicht getUnten() {
    return unten;
  }
  
  public Rechteck getHintergrund() {
    return hintergrund;
  }
  
  public int getZustand() {
    return zustand;
  }

  public void setZustand(int zustand) {
    this.zustand=zustand;
  }
  
  
  public void umschalten(){
```


----------



## Michael... (17. Nov 2009)

Hellge hat gesagt.:


> Ich habe eine Ampel die gezeichnet wird


Die wird echt gezeichnet, also per paint/paintComponent?
Was steckt hinter den Klassen Ampellicht und Rechteck?


----------



## Hellge (17. Nov 2009)

ja, auf ner leinwand. also für eine ampel die durch geschaltet wird hab ich es schon fertig, nun muss ich noch einmal zwei ample schalten und einmal für 10. die klassen rechteck und ampelleicht sehen wie folgt aus:

```
public class Ampellicht{


  // Anfang Attribute
  private int durchmesser;

  private int xPosition;

  private int yPosition;

  private String farbe;

  private boolean istSichtbar;
  // Ende Attribute


  public Ampellicht(){

  }

  public Ampellicht(String ampelfarbe){
     farbe = ampelfarbe;
     durchmesser = 30;
     xPosition = 30;
     if (ampelfarbe.equals("rot")){
        yPosition=10;
     }

     if (ampelfarbe.equals("gelb")){
        yPosition=45;
     }

     if (ampelfarbe.equals("gruen")){
        yPosition=80;
     }
  }

  // Anfang Methoden

  public void anschalten() {
    istSichtbar=true;
  }
  
  public void ausschalten() {
    istSichtbar=false;
  }
  
  public boolean getIstSichtbar(){
    return istSichtbar;
  }
  
  public int getDurchmesser(){
    return durchmesser;
  }
  
  public int getXPosition(){
    return xPosition;
  }
  
  public int getYPosition(){
    return yPosition;
  }
  
  public String getFarbe(){
    return farbe;
```


```
public class Rechteck {

  // Anfang Attribute
  private int xGroesse;
  
  private int yGroesse;

  private int xPosition;

  private int yPosition;

  private String farbe;

  private boolean istSichtbar;
  // Ende Attribute


  /**
   * Erzeuge ein neues Rechteck mit einer Standardfarbe an einer
   * Standardposition.
   */
  public Rechteck() {
    xGroesse = 40;
    yGroesse = 115;
    xPosition = 25;
    yPosition = 5;
    farbe = "schwarz";
    istSichtbar = true;
  }

  // Anfang Methoden

  public boolean getIstSichtbar(){
    return istSichtbar;
  }
  
  public int getXPosition(){
    return xPosition;
  }
  
  public int getYPosition(){
    return yPosition;
  }
  
  public String getFarbe(){
    return farbe;
  }
  
  public int getXGroesse(){
    return xGroesse;
  }
  public int getYGroesse(){
    return yGroesse;
  }
  
  public void sichtbarMachen() {
    istSichtbar = true;
  }

  public void unsichtbarMachen() {
    istSichtbar = false;
  }
```


----------

