ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
610
610
EMPFEHLEN
-
Hallo,
ich habe das Problem, dass mein JFrame nicht repaintet, sprich die ContentPane bleibt weiß.
Ich will gerade ein Spiel programmieren, bei dem ein Objekt der Klasse Spieler bei einem Objekt, das die Referenz auf das JFrame enthält, die Methode gibSpielzug() aufruft, die einen Objekt der Klasse Spielzug zurückliefern soll.
Diese Aufgabe wollte ich lösen, indem in der Methode gibSpielzug() die Methode wait() an einem Object, das speziell zur Synchronisation ist, ausführt, sodass gewahrtet wird, bis eine entsprechende Aktion beim Fenster erfolgt ist und dann wird ein Spielzug-Objekt zurückgeliefert. Die zum wait()-Aufruf entgegengestellte notify()-Anweisung an dem Synchronisations-Objekt wird in einer actionPerformed()-Methode ausgeführt, wenn eine korrekte Aktion am Fenster ausgeführt wurde und hier wird dann auch die Spielzug-Variable gesetzt.
Jedoch wirkt die repaint()-Methode am Fenster nicht und es bleibt weiß, vermutlich weil duch das wait() der Thread gesperrt wird. Aber eigentlich müsste das JFrame doch in einem eigenen Thread arbeiten und somit sollte die vorher ausgeführte repain()-Anweisung Wirkung zeigen.
Da der Text so lang ist, hier nochmal ein Klassen- und Sequenzdiagramm der beteiligten Bereiche:
http://img40.imageshack.us/img40/2368/diagramme.png
Weiß jemand, wie ich das Problem beheben kann?
MfG
FabiianGeändert von Fabiian (19.10.10 um 18:10 Uhr)
-
Ich hab den Fehler gefunden.
Ich hatte das Spiel aus einer actionPerformed-Methode eines anderen JFrames gestartet, aber nicht als Thread. Dadurch lief während der Ausführung noch die ganze Zeit die actionPerformed Methode und somit war vermutlich der AWT-Thread blockiert. Jetzt implementiert das Spiel das Interface Runnable und beim Starten innerhalb der actionPerformed-Methode wird dorthin zurückgekehrt und diese kann abgeschlossen werden.
Ähnliche Themen
-
Kein paint()-Aufruf mehr durch repaint() nach Hinzufügen eines Dialogs
Von Captain Code im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 23.10.07, 14:32 -
LAN-Verbindung durch Windows-Firewall blockiert?
Von daniel222 im Forum NetzwerkeAntworten: 1Letzter Beitrag: 05.07.07, 02:57 -
repaint wird trotz Thread nicht ausgeführt
Von tobitobsen82 im Forum JavaAntworten: 10Letzter Beitrag: 16.06.07, 13:42 -
Zugriff auf JFrame in eigenem Thread?
Von DarthShader im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 04.04.07, 10:08 -
Durch JRadioButton neues Objekt eines JFrame erzeugen
Von the_skywalker im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 21.01.05, 10:37





Zitieren
Login





