Java EDT

  • Themenstarter Themenstarter Patt1502
  • Beginndatum Beginndatum
P

Patt1502

Gast
Ich hätte gerne dass Java sozusagen "wartet", nachdem ich die Methode OtherPlayerCardsFrame aufgerufen, nachdem in der erst Cards.stiche[0][0] festgelegt wird. Sonst bekomm ich ja immer null, aber ich will damit erst weiterarbeiten nachdem die Methoden fertig ist. In der Methode wird ein JFrame geöffnet und dort muss ich dann etwas auswählen und auf OK drücken. Erst danach möchte ich dass er weiter im Code geht.

Java:
if (playersBeforeCom == 1) {
            // Computer ist zweiter
            OtherPlayerCards.OtherPlayerCardsFrame(1, playersBeforeCom, 0);
           
            System.out.println(Cards.stiche[0][0]);
        }
 
Ich würde den Status des Programmes mit einem Zustandsautomaten abbilden.

Am besten malst Du Dir den Zustandsautomaten auf Papier auf, ein Graph aus Knoten und Kanten.

Dann kannst Du den Zustandsautomaten in einer if-else-if-Kaskade auscodieren.

Die Kanten sind die Ereignisse, die vom Benutzer bzw. durch den Zeitablauf hereinkommen.

Wahrscheinlich gibt es auch Script-Frameworks für Swing.

Falls Du Deinen Code nach Deiner ursprünglichen Idee gestalten willst, musst Du den Script-Code in einen eigenen Thread legen.

Zum Warten müsstest Du einen Spinlock, eine Warteschleife mit Thread.yield-Aufrufen einfügen.
 
Ich weiß nicht ob warten die beste Lösung ist. Die Threads sind extra abgetrennt um hänger zu vermeiden. Wenn fu aber wirklich warten musst, und ich sich richtig verstandem habe würde ich eine while schleife machen die so lange läuft bis das Fenster geshlossen wird/etwas ausgewählt wird. Meistens lässt sich sowas aber viel besser mit WindowAdaptern lösen (Ich glaube so heißt die Klasse) und dann in der onClose methode weiterzuarbeiten. Ein Programmablauf Plan wie @Barista ihn vorgeschlagen hat ist immer eine gute Idee, aber mit einem Skript Framework würde ich vorsichtig sein, das kann schnell zu verwirrung führen. Ist wohl eine Geschmackssache.
 

Zurück
Oben