Frage von Hamid8787, 28

(Java) Buttons erscheinen doppelt nach Wiederholung in Schleife, Vermeidung?

Liebe Community,

ich habe folgenden Abschnitt in meinem Quelltext:

Code(Java):

import java.util.Scanner;

class Start{

    public static void main(String[] args){
        Scanner scanner1 = new Scanner(System.in);
        boolean wdh = true;

        do {
            Heldenauswahl.main(null);
             /* Die Buttons befinden sich in der Klasse Heldenauswahl und werden
              * doppelt angezeigt, sobald die Methode wiederholt wird. */
             System.out.println("Möchten Sie eine weitere Runde spielen?");

            if(scanner1.next().equals("Ja")){

            }else if(scanner1.next().equals("ja")){

            }else{
                wdh = false;
            }

        }while(wdh);
    }
}

Wenn der Benutzer nun Ja oder ja eintippt, wiederholt sich die Schleife und somit auch die main-Methode der Klasse Heldenauswahl. Danach werden aber die Buttons in dem Fenster von Heldenauswahl aber doppelt angezeigt. Wie lässt sich das vermeiden?

Antwort
von rmnstr, 16

Also die Buttons werden anscheinend durch Heldenauswahl.main(null) erstellt. Wenn du diese Methode dann nochmal aufrufst, werden sie natürlich ein weiteres Mal erstellt.

Entweder passt du Heldenauswahl an, indem du die Buttons nach einer Runde wieder entfernst, oder besser: du bietest andere Methoden an, die eine Runde mit bereits erstellten Buttons starten lassen und verzichtest auf die erneute Erzeugung der Buttons.

Deine if-Abfrage am Ende ist übrigens ziemlich unschön. Besser wäre etwas wie:

if (!scanner.next().equalsIgnoreCase("ja")) {
wdh = false;
}
Kommentar von Hamid8787 ,

In dem Fall ignoriert er Groß- und Kleinschreibung, sehe ich das richtig? Und danke für den Tipp, versuche das ungefähr so zu implementieren.

Kommentar von rmnstr ,

Genau, und das ! vorher negiert den ganzen Ausdruck.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten