# Ampelschaltung



## DerAtze (16. Feb 2016)

Hallo,

ich habe in der Schule den unten stehenden Quelltext für eine Ampelschaltung bekommen, bei dem beim Klick auf den Button die neue Ampelphase mit Fußgängerampel und normaler Ampel gestartet werden sollte. Ich weiß allerdings nicht, wie ich die nächste Ampelphase einfügen muss. Wäre nett wenn mir jemand hierbei behilflich sein könnte.



```
// Anfang Methoden
  public static void main(String[] args) {
    new Ampelschaltung("Ampelschaltung");
  } // end of main
  public void jButton1_ActionPerformed(ActionEvent ae) {
    if (phaseAmpel == 1) {
      jPanel1.setBackground(Color.RED);
      jPanel2.setBackground(Color.WHITE);
      jPanel3.setBackground(Color.WHITE);
      jPanel4.setBackground(Color.WHITE);
      jPanel5.setBackground(Color.GREEN);
    
    }

  }// end of if
  
  
} // end of jButton1_ActionPerformed 

   // Ende Methoden
```


----------



## Joose (16. Feb 2016)

Bitte Code immer in Code-Tags packen [java] ... dein code .. [/java]

Ich nehme an am Ende der "actionPerformed" Methode sollte der Wert von "phaseAmpel" um 1 erhöht werden.
Und für die anderen Phasen schreibst du einfach ebenfalls if Bedingungen hin (natürlich mit der richtigen Farbreihenfolge).
Ein Beispiel für diese if-Bedingung hast du ja schon vorgegeben.


----------



## DerAtze (16. Feb 2016)

Habe es jetzt so aufgeschrieben und es funktioniert trotzdem nicht


```
// Anfang Methoden
  public static void main(String[] args) {
    new Ampelschaltung("Ampelschaltung");
  } // end of main
  public void jButton1_ActionPerformed(ActionEvent e) {
    {
      if (phaseAmpel == 1) {
        jPanel1.setBackground(Color.RED);
        jPanel2.setBackground(Color.WHITE);
        jPanel3.setBackground(Color.WHITE);
        jPanel4.setBackground(Color.WHITE);
        jPanel5.setBackground(Color.GREEN);  
       
        jPanel1.setBackground(Color.RED);
        jPanel2.setBackground(Color.YELLOW);
        jPanel3.setBackground(Color.WHITE);
        jPanel4.setBackground(Color.RED);
        jPanel5.setBackground(Color.WHITE); 
       
        jPanel1.setBackground(Color.WHITE);
        jPanel2.setBackground(Color.WHITE);
        jPanel3.setBackground(Color.GREEN);
        jPanel4.setBackground(Color.WHITE);
        jPanel5.setBackground(Color.WHITE); 
       
       
      } 
    } 
  }// end of if
```


----------



## DerAtze (16. Feb 2016)

kann vielleicht jemand an dem code verändern was ich falsch gemacht habe? ich verstehe das einfach nicht


----------



## JStein52 (16. Feb 2016)

```
public void jButton1_ActionPerformed(ActionEvent e) {
    {
      if (phaseAmpel == 1) {
        jPanel1.setBackground(Color.RED);
        jPanel2.setBackground(Color.WHITE);
        jPanel3.setBackground(Color.WHITE);
        jPanel4.setBackground(Color.WHITE);
        jPanel5.setBackground(Color.GREEN);
        phaseAmpel = 2;
      } else if (phaseAmpel == 2) {
        jPanel1.setBackground(Color.RED);
        jPanel2.setBackground(Color.YELLOW);
        jPanel3.setBackground(Color.WHITE);
        jPanel4.setBackground(Color.RED);
        jPanel5.setBackground(Color.WHITE);
        phaseAmpel = 3;
      } else if (phaseAmpel == 3) {
        jPanel1.setBackground(Color.WHITE);
        jPanel2.setBackground(Color.WHITE);
        jPanel3.setBackground(Color.GREEN);
        jPanel4.setBackground(Color.WHITE);
        jPanel5.setBackground(Color.WHITE);
        phaseAmpel = 1;   // wieder von vorne
      }
    }
  }// end of if
```

ich weiss aber nicht ob das alle Phasen sind bzw. was diese Panels alle darstellen. Aber das Prinzip sollte wohl klar sein oder ?  Farben setzen und die aktuelle Phase fortschalten.

(und keine Gewähr dafür dass die geschweiften Klammern am Ende passen )


----------



## DerAtze (16. Feb 2016)

Vielen Dank dafür, jetzt funktioniert alles


----------

