Hallo zusammen,
ich schreibe gerade an einem JApplet! Bei der Initialisierung habe ich folgendes:
[Java=4]SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createGUI();
}
});[/code]
in der createGUI werden Panels erstellt und hinzugefügt usw.
Nun zur 1.Frage:
im createGUI starte ich jetzt ein weiteren Thread, darf man das, weil es ja im invokeAndWait passiert? Sonst könnte ich von der Logik her den Thread auch vorher starten aber nicht nachher!
Ach als Info: Ich habe das invokeAndWait so verstanden, dass es für die Threadsicherheit von Swing benötigt wird!?!
Jetzt kommen wir zu der Synchronisation:
Im Thread wird eine List, die er einem Webservice bekommt, gesetzt!
, wenn er das gemacht hat Sleept er für 5 Sekunden, vor dem schlafen führt er noch ein notfiy() aus, die die Observer(Panels) benachrichtigt!
Die Panels lesen die List schreiben aber aber nicht in sie hinein!(das wiederholt sich dann die ganze zeit)
2.Frage:
Muss man hier die Abschnitte synchronisieren, also einmal wo er die Liste setzt und einmal in den Panels wo er sie ließt?
3.Frage:
In den Panels wird nach dem notify, die GUI upgedatet, z.B. hintergrundfarbe gesetzt oder vom Label die texte verändert, aber sowas soll ja nur in den Event-Methoden (Event dispatcher thread) geschehen, habe ich irgendwo mal gelesen! Oder ist hierfür die Funktion invokeAndWait zuständig, also das man es nicht in einer event methode machen muss?
Ich hoffe ihr versteht alles ...
Vielen Dank im Voraus!
MfG
GastyGast
ich schreibe gerade an einem JApplet! Bei der Initialisierung habe ich folgendes:
[Java=4]SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createGUI();
}
});[/code]
in der createGUI werden Panels erstellt und hinzugefügt usw.
Nun zur 1.Frage:
im createGUI starte ich jetzt ein weiteren Thread, darf man das, weil es ja im invokeAndWait passiert? Sonst könnte ich von der Logik her den Thread auch vorher starten aber nicht nachher!
Ach als Info: Ich habe das invokeAndWait so verstanden, dass es für die Threadsicherheit von Swing benötigt wird!?!
Jetzt kommen wir zu der Synchronisation:
Im Thread wird eine List, die er einem Webservice bekommt, gesetzt!
Code:
liste = listeVomWebservice
Die Panels lesen die List schreiben aber aber nicht in sie hinein!(das wiederholt sich dann die ganze zeit)
2.Frage:
Muss man hier die Abschnitte synchronisieren, also einmal wo er die Liste setzt und einmal in den Panels wo er sie ließt?
3.Frage:
In den Panels wird nach dem notify, die GUI upgedatet, z.B. hintergrundfarbe gesetzt oder vom Label die texte verändert, aber sowas soll ja nur in den Event-Methoden (Event dispatcher thread) geschehen, habe ich irgendwo mal gelesen! Oder ist hierfür die Funktion invokeAndWait zuständig, also das man es nicht in einer event methode machen muss?
Ich hoffe ihr versteht alles ...
Vielen Dank im Voraus!
MfG
GastyGast