Häuserreihe mit Canvas

Guten Abend,

zur Zeit programmiere ich eine Häuserreihe, bei der man in einer graphischen Benutzerfläche angeben kann, wie viele Häuser erzeugt werden sollen und in welchem dieser Häuser das “Licht” angehen soll (sich das Fenster des Hauses also gelb färbt). Das ganze Programm sollte folgendes beinhalten:
[ol]
[li]Anzahl der Häuser
[/li][li]In welchem einzelnen Haus soll das Licht an- und wieder ausgehen?
[/li][li]Alle Häuser sollen an- oder ausgehen
[/li][/ol]
Die ersten beiden Punkte habe ich gemeistert, allerdings habe ich ein Problem mit dem An- und Ausschalten aller Häuser auf einmal. Bei Betätigung der beiden Buttons passiert nichts. Könnte mir vielleicht jemand helfen und mir sagen, wo der Fehler liegt?

Danke schon mal für die Antworten.

Beim Drüberschauen steht in ‚Strasse.java‘

    public void alleAn ()
    {
        for (int i=0; i<i;i++)
        {
            haeuser**.lichtAn();

        }
    }
    public void alleAus ()
    {
        for (int i=0; i<i;i++)
        {
            haeuser**.lichtAus();
        }
    }

Schau’ nochmal gaaanz scharf auf die Schleifenbedingung :wink: Die Schleife läuft, solange … … WAS erfüllt ist?

Erst einmal vielen Dank, dass du dir die Zeit genommen hast über mein Programm zu gucken. Ich hatte schon die Befürchtung niemand melde sich mehr.

Ich habe nun die Abbruchbedingung auf 10 hochgesetzt und nun kann ich alle Häuser an- und ausschalten, danke!
Aber gibt es eine schönere Lösung als einfach nur eine beliebeige Zahl, in diesem Falle 10, zu wählen?

[quote=THTHT]Ich nehme an, der Fehler liegt darin, dass die Schleife läuft, solange i = 0 ist, habe ich Recht?[/quote]nein.
Die Schleife läuft so lange wie i<i ist.
Wieviele Durchläufe solle denn aber die Schleife machen?

bye
TT

[QUOTE=THTHT]
Aber gibt es eine schönere Lösung als einfach nur eine beliebeige Zahl, in diesem Falle 10, zu wählen?[/QUOTE]

Sicher: i<haeuser.length . Sowas steht natürlich auch überall, http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html … aber … OK

[quote=Marco13]Sowas steht natürlich auch überall[/quote]bei eclipse bekommt man das sogar als Vorschlag, wenn man nach dem Tippen von for <Strg>+<Leer> tippt…

bye
TT

Weil du die Schleifenvariable nicht benötigst, kannst du auch die foreach Schleife nehmen. Das ginge dann so:

{
    for (Haus haus : haeuser) {
        haus.lichtAn();
    }
}```