EDT violation detectet

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

bastel gerade an meiner ersten "richtigen" GUI mittels Swing in einem Applet. Dazu habe ich ein Klasse MyToolBar extends JToolBar die einen Button Status enthält. Das Programm hat folgende Struktur:

MyProggi
- Client
- MyToolbar

Das ganze Proggi ist wie folgt in invokeLater geschachtelt:

Code:
in init()

NativeInterfaceHandler.init();
		RepaintManager.setCurrentManager(new CheckThreadViolationRepaintManager());   
		EventQueue.invokeLater(new Runnable(){
			public void run(){
                    mp = MyProggi(...);
                    add(mp);
  }
}

in start()

mp.connect(); // Bewirkt den Verbindungsaufbau mittels RMI und das Setzen des Statusbuttons

Der Client baut eine Verbindung mittels RMI zum Server auf bzw. prüft ob diese Verfügbar ist und setzt dann mittels der Funktion setStatus() (in MyToolbar) den Statusbutton (grün / rot).

Genau dieser Aufruf setStatus wirft mir eine "EDT violation detected"

Das verstehe ich nicht, da der Client von MyProggi erstellt wird und myProggi mittels InvokeLater gestartet wurde müsste doch der Aufruf der Funktion setStatus keine EDT violation hervorrufen?

Oder verstehe ich hier was falsch?

THX
 

thE_29

Top Contributor
Die Frage ist, was ist ein EDT violation?
Meint er damit, dass die Funktionalität im EDT aufgerufen wird?
 

Wildcard

Top Contributor
Was macht den der CheckThreadViolationRepaintManager? Prüfen ob ein Aufruf auch aus dem richtigen Thread kommt?
In dem Fall würde ich sagen, das du die GUI aus dem falschen Thread manipulierst.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben