Hallo ich habe folgendes Problem:
Ich habe ein Applet geschrieben das durch einen Thread aus einer Fachkonzept-Klasse immer wieder neugezeichnet wird.
Die Fachkonzept erbt von Observable und implementiert Runnable,
die GUI implementiert Observer.
Die GUI startet den Thread der Fachkonzept und dieser, meldet mit setChanged(), dass die die GUI sich neuzeichnen muss, in der Update der GUI wird, dann neugezeichnet.
Nun will ich das ganze in SWT machen, es funktioniert auch alles, nur der Thread darf nicht auf die GUI zugreifen: ivalid thread access.
Ich habe lange gesucht und ich stoße immer wieder auf diesen Code:
display.syncExec(
new Runnable() {
public void run(){
label.setText(text);
}
}
);
Ich habe auch über SWT's Appartment-threading gelesen, aber
mir ist nicht klar wie ich diesen Code einsetze.
Ich habe ja bereits eine Runnable das ist meine Konzeptklasse,
könnte mir bitte jemand helfen?
Ist die Grundstruktur die gleiche bei SWT?
Muß die GUI ebenfalls die Observer implementieren?
Mir ist nicht klar in welcher Klasse ich diesen Code von oben
laufen lassen soll, und wie genau.
MfG
Jakob
Ich habe ein Applet geschrieben das durch einen Thread aus einer Fachkonzept-Klasse immer wieder neugezeichnet wird.
Die Fachkonzept erbt von Observable und implementiert Runnable,
die GUI implementiert Observer.
Die GUI startet den Thread der Fachkonzept und dieser, meldet mit setChanged(), dass die die GUI sich neuzeichnen muss, in der Update der GUI wird, dann neugezeichnet.
Nun will ich das ganze in SWT machen, es funktioniert auch alles, nur der Thread darf nicht auf die GUI zugreifen: ivalid thread access.
Ich habe lange gesucht und ich stoße immer wieder auf diesen Code:
display.syncExec(
new Runnable() {
public void run(){
label.setText(text);
}
}
);
Ich habe auch über SWT's Appartment-threading gelesen, aber
mir ist nicht klar wie ich diesen Code einsetze.
Ich habe ja bereits eine Runnable das ist meine Konzeptklasse,
könnte mir bitte jemand helfen?
Ist die Grundstruktur die gleiche bei SWT?
Muß die GUI ebenfalls die Observer implementieren?
Mir ist nicht klar in welcher Klasse ich diesen Code von oben
laufen lassen soll, und wie genau.
MfG
Jakob