Java; einzelne Methode pausieren?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich glaube Du hast die Grundlagen noch nicht verstanden. Man hält keine Methoden an sondern immer nur den aktuellen Thread. Das heißt, wenn Du eine Swing-Anwendung hast die im wesentlichen in einem Thread läuft, wird immer die gesamte Anwendung anhalten (Anhalten des Event Dispatch Threads).

Beschreib mal Dein Ziel, dann können wir helfen.


EvelynCook 
Beitragsersteller
 10.02.2015, 11:29

Stimmt schon, so gut kenne ich mich noch nicht mit Threads aus....

Also: Ich habe einen "Hauptframe", auf dem das eigentliche Spiel läuft. Klickt man jetzt auf einen Button, öffnet sich ein neuer Frame mit dem jeweiligen "Minispiel". Um das Ergebnis aus dem Minispielframe in den Hauptframe zu übergeben, möchte ich nun, dass der Hauptframe nach öffnen des Minispiels einige Zeit wartet, bis das Minispiel beendet ist und dann via einer get-Methode das Ergebnis des Minispiels übernimmt...

Anschließend soll der Hauptframe mit dem eigentlichen Spiel normal weiterlaufen. Ich hoffe, das war jetzt halbwegs verständlich...

Raetselknacker  10.02.2015, 12:09
@EvelynCook

Ok, es gibt mehre Möglichkeiten dies zu lösen. Je nach dem wie die Spiele umgesetzt sind ist es einfacher oder schwieriger. Ich würde versuchen, die Spiele anhaltbar zu machen (ohne den Thread anzuhalten). Wenn Dein Hauptspiel rundenbasiert ist, würde es reichen die Benutzereingaben zu unterbinden. Wenn es zeitbasiert ist (Arcade/Action) würde ich einen Spieltimer empfehlen - also etwas was die Spielzeit repräsentiert. Den würde man dann einfach anhalten und fortsetzen können. Jedes einzelne Spiel könnte eine Instanz dieses Timers verwenden und man könnte sogar Zeitlupe oder Zeitraffer einbauen.

Noch einmal Danke an alle :)

Ich habe das Problem gelöst, indem ich es nicht gelöst habe, denn auch mein Informatiklehrer konnte meinen Fehler nach 1 1/2 Stunden nicht finden.... Wir haben wirklich alles ausprobiert, was hätte theoretisch funktionieren müssen, doch anscheinend liegt der Fehler irgendwo anders.

Man hält nur Threads an, aber keine Methoden


EvelynCook 
Beitragsersteller
 10.02.2015, 12:09

Ja, aber es muss doch eine Möglichkeit geben, nur eine Methode oder eine Anweisung zu pausieren und nicht den kompletten Thread, oder?

Raetselknacker  10.02.2015, 12:32
@EvelynCook

Nein, überleg mal selbst... Ein Angestellter wird von Chef beauftragt Papier zu holen, da er einen Brief schreiben will. Dazu braucht er einen Schlüssel von der Sekretärin, die sofort losgeht diesen Schlüssel zu holen. Wann wird der Brief fertig wenn die Sekretärin nun aufgehalten wird? - Hälst Du eine Methode an - steht die ganze Aufrufkette....