[gelöst] QObject used from outside its own thread

Alles zum Qt Framework für Java
Antworten
RoS
Beiträge: 10
Registriert: 29. Oktober 2006 16:55

[gelöst] QObject used from outside its own thread

Beitrag von RoS »

Hallo,
ich arbeite für ein Studienprojekt an einem Netzwerkgame und bin hier auf ein Problem gestoßen ;-)

Nach dem der Client ein Game-DTO erhalten hat, soll das aktuelle Spiel auf dem Client dargestellt werden.

Allerdings führt das Aktualisieren der Zeichenfläche zu einer Exception.

Code: Alles auswählen

Exception in thread "Thread-2" QObject used from outside its own thread, object=de.ros_projects.ArcaneTower.gui.GamePanel@3e89c3, objectThread=Thread[main,5,main], currentThread=Thread[Thread-2,5,main]
	at com.trolltech.qt.QtJambiInternal.threadCheck(QtJambiInternal.java:498)
	at com.trolltech.qt.gui.QWidget.update(QWidget.java:1919)
	at de.ros_projects.ArcaneTower.gui.GameGUIController.refreshGUI(GameGUIController.java:119)
	at de.ros_projects.ArcaneTower.gui.GameGUIController.playerStatusChanged(GameGUIController.java:107)
	at de.ros_projects.ArcaneTower.gui.GameGUIController.playerStatusChanged(GameGUIController.java:1)
	at de.ros_projects.ArcaneTower.game.Player$1.run(Player.java:243)

Code: Alles auswählen

	private void refreshGUI()
	{
		System.out.println("Player.refreshGUI()");
		panel.showGame(game);
		
		panel.update();
	
	}
Der gesamte Quellcode ist unter:
http://www.ros-projects.de/websvn/listi ... te+Systeme
einsehbar.
Zuletzt geändert von RoS am 19. Dezember 2007 14:09, insgesamt 1-mal geändert.
RoS
Beiträge: 10
Registriert: 29. Oktober 2006 16:55

Beitrag von RoS »

Vereinfacht ist die Frage. Wie greif ich auf die Widgets in nem laufenden Thread zu.
RoS
Beiträge: 10
Registriert: 29. Oktober 2006 16:55

Beitrag von RoS »

Ok geht natürlich mit Signalen von einem Thread auf den anderen. Problem war nur, dass ich in dem Daten-Thread nen extra QObject anlegen musste, welches das Signal sendet. Da der Standard-Java-Thread dazu nicht in der Lage ist.
Antworten