[Java] Wie kann ich eine while-Schleife wieder beenden?

5 Antworten

Von Experte Lezurex bestätigt

Mit

break;

das bei einer entsprechenden If-Abfrage ausgelöst wird

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
verreisterNutzer  29.10.2021, 10:59

Problem ist aber, wenn ich auf Start drücke, dass dann in dem Fenster nichts anderes gedrückt werden kann :/ Also der Start-Button ist dann auch ausgegraut.

Bild (zeigt nur das Design)

0
MrAmazing2  29.10.2021, 13:47
@verreisterNutzer

Dann musst du die while-Schleife in einem neuen Thread laufen lassen.

Läuft momentan wohl im selben Thread wie die GUI, weshalb sie unresponsive wird.

1
verreisterNutzer  29.10.2021, 15:40
@MrAmazing2

Kann das mit

Thread acThread;
acThread = new Thread(() -> {
// mein Code
});

gutgehen, wenn ich den Thread mit

acThread.join();

in einer anderen Methode wieder stoppe?

0
MrAmazing2  29.10.2021, 19:36
@verreisterNutzer

Hört sich falsch an.

Wenn du acThread.join() machst, dann bleibt dein momentaner Thread ja stehen bis der acThread fertig ist. Dann hast du ja das selbe Problem wieder wie momentan.

1
verreisterNutzer  29.10.2021, 19:40
@MrAmazing2

Ich habe gelesen, dass join zum Stoppen ist, jamoin. Also .stop() ist vorgeschlagen, aber durchgestrichen, dann nehme ich das mal.

0
work=True;
while(work){
    do work
}

Das Event setze das Flag auf false - die Schleife wird beendet.

Bevor du dir die Mühe machst eine Frage zu schreiben kannst du auch Google verwenden und bekommst beispielsweise dieses Ergebnis, welches deine Frage innerhalb von 30 Sekunden hätte beantworten können: https://javabeginners.de/Schleifen_und_Verzweigungen/break_und_continue.php#:~:text=Wird%20die%20Anweisung%20break%20innerhalb,nach%20der%20Schleife%20fortgesetzt%20wird.

verreisterNutzer  22.10.2021, 13:27

Ich habe bereits Google verwendet...

Aber wenn ich break; reinmache, bricht es sofort ab

0

ja dann mach das doch und code als beispiel wäre wichtig , weiss doch keiner was du da gezaubert hast . schließlich kannst du ja auch eine abbruchbedingung in die while schleife packen und eine keypressed abfrage auch .

Also Java habe ich bislang nicht gelernt, aber versuch es mal mit break.