Zunächst einmal bin ich neu in Java und Sie werden wahrscheinlich in der Lage sein zu erraten. Danke im Voraus.Warten auf einen JFrame und dann Abrufen von Informationen
Ich schreibe gerade ein Brettspiel mit Java für eine Aufgabe. Es gibt menschliche und Computer-Player-Klassen, und die GUI nur in der menschlichen Spieler-Klasse. In der menschlichen Klasse verwende ich eine Klasse namens "UI", die JFrame erweitert, wo der Benutzer ein Stück auswählt.
Momentan wartet diese Benutzeroberflächenklasse auf das Drücken der Eingabetaste und setzt dann eine 'done'-Variable auf' true '. In der menschlichen Spielerklasse erstelle ich diese UI und warte dann in einer while-Schleife, indem ich diesen booleschen Wert kontinuierlich überprüfe, bevor ich die X/Y-Position der Bewegung erhalte.
while (!input.moveEntered());
move.setPosition(input.getX(), input.getY());
Dies scheint nur zu funktionieren, wenn die While-Schleife nicht leer ist. Wenn ich eine Druckanweisung dort hinzufüge, funktioniert es gut. Es scheint, als gäbe es einen viel besseren Weg. Ich habe in Dialoge geschaut, aber ich schließe das Fenster nicht jedes Mal, wenn eine Bewegung eingegeben wird.
Danke fürs Lesen.
GUI sind ereignisgesteuert, vielleicht sollten Sie stattdessen ein [Observer Pattern] (http://www.oodesign.com/observer-pattern.html) in Betracht ziehen, dies wird Ihnen erlauben, das zu befreien GUI-Thread zum Aktualisieren der Benutzeroberfläche. Sie könnten auch in Betracht ziehen, [Parallelität in Java] (http://docs.oracle.com/javase/tutorial/essential/concurrency/) – MadProgrammer