Zum Inhalt springen

SWT redraw Thread-Problem


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe ein folgedes Problem:

Mein SWT-Canvas in dem ich selbst etwas zeichnen möchte ich neu zeichnen lassen, sobald ein anderer Programmteil neue Daten für dieses Canvas vorliegen hat bringt mir eine Exception. Da die Daten in einem separaten Thread geladen werden habe ich in diesem einfach die redraw()-Methode des Canvas gerufen. Allerdings verursacht mir das wiederrum eine "SWTException: Invalid thread access".

Scheinbar kann den redraw nur ein bestimmter Thread auslösen und sonst keiner. Hat jemand eine Idee, wie man das umgehen kann? Gibts irgendwie etwas wie ich SWT sagen kann das es bei gelegenheit diese Componente mal neu Zeichnen soll?

Danke.

Geschrieben

Das ist nicht nur bei SWT so.

Auch bei normalem Swing und AWT ist es so, dass nur der GUI-Thread zeichnen darf.

Als Lösung gibt es z.Bsp.:

final MeinCanvas myCanvas = meine Referenz;

SwingUtilities.invokeLater(new Runnable()

{

	public void run()

	{

		myCanvas.redraw();

	}

});	

Geschrieben

Danke! Genau nach sowas hab ich gesucht.

Das ist nicht nur bei SWT so.

Auch bei normalem Swing und AWT ist es so, dass nur der GUI-Thread zeichnen darf.

Das mag schon sein, dennoch kann ich die repaint()-Methode bei Swing von jeden x-beliebigen Thread aufrufen. Und die Methode blockiert auch so lang wie der repaint dauert, weils eben gekapsel ist.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...