# Kommunikation zwischen Applets



## youssef (5. Apr 2005)

Hallo zusammen,

wie können 2 Applets miteinander kommunizieren wenn sie nicht in einem Frame liegen ?
habe schon mit Appletcontext versucht aber erfolglos.  Laut das online Buch "java ist eine Insel" funktioniert diese Methode nur wenn die Applets in einem Frame liegen.

ich habe 2 Applets . applet1 wird als erstes aufgerufen und enthält eine schleife in der init methode. sie dient nur zur kommunikation mit dem server.
nach dem ersten durchlauf dieser schleife wird das Applet2 aufgerufen. Applet2 dient zum zeichnen.

ich möchte aus Applet2 nach dem schliessen , in Applet1 die schleife beenden und funktionen dort  aufrufen

so bin ich bis jetzt vogegangen:
habe destroy funktion von Applet2 implementiert (weil sie auf schliessen event reagiert) und einen flag einer zwischenKlasse gesetzt. auuserdem sende eine socket zum server damit er weiss dass der client beendet ist.
auf Applet1 läuft die schleife solange das flag nicht gesetzt ist
aber die reaktionszeit ist gross 3bis 4 sek

hat jemand eine bessere schnellere idee ?

Vielen Dank für ihere Bemühungen
Youssef


----------



## Grizzly (6. Apr 2005)

Ich verstehe nicht ganz, warum Du überhaupt zwei Applets in einer Seite haben willst. Kannst Du nicht die Kommunikation mit dem Server auch in das zweite Applet einbauen? Bzw. was ist der Grund, dass Du die beiden überhaupt getrennt hast? :bahnhof:


----------



## youssef (6. Apr 2005)

ok. 
ich erkläre dich warum ich diese trennung gemacht habe. 
im prinzip werden die Applets (java code) von einem C-tool generiert. die Anzahl der Applets ist variabel und hängt von der Applikation ab. jedes Prozessbild in der Applikation wird durch einen Applet dargestellt. ausserdem gibt es   ein Applet für die Kommunikation.
wenn ich zb 10 ProzessBilder in meine Applikation habe, werden insgesamt 11 Applets generiert:
ein Applet das nur zur Kommunikation (socket aufbau read und write) dient und die Daten von Server für die andere Applets zur Verfügung stellt.
die restliche 10 Applets holen dann diese Daten und zeichnen sie auf den Bildschirm.
ein Prossbild(applet) ist als startseite festgelegt und wird vom kommunikation-applet aufgerufen.
von der startseite kann man  die anderen Prozessbilder aufrufen.
ich hoffe dass du verstanden hast 

Gruss
Youssef


----------



## AlArenal (6. Apr 2005)

Ich bin zwar nciht Grizzly, verstehe es aber nicht 

Reden wir von Maschinen-Prozessen oder Business-Prozessen?

Warum nicht ein einziges Applet, das sowohl die Kommunikation übernimmt als eine beliebige Anzahl von Prozessen visualisiert?


----------



## youssef (6. Apr 2005)

ich rede von  Maschinen-Prozessen.
ich mache nur die webschnittstelle von einem Prozessvisualisierungssystem und wie geasgt das System generiert für jeden Prozessbild ein Applet . wechseln zwischen die prozessbilder(Applets) ist mit showDocument realisiert. 
an das System selbst darf ich nichts ändern ausser die code generierung. 
wenn ich alles in ein einziges Applet mache (kommunikation und visualisierung) muss ich mit einen ganzen neuen Konzept denken


----------



## Spacerat (12. Apr 2005)

1. Such mal im Forum nach Hints zum netscape.jar. Dieses ermöglicht eine Kommunikation zwischen Java und JavaScript. JavaScript ist der Schlüssel zu Applets in anderen Frames.

2. Die Methode destroy() sollte NIEMALS! aus dem Applet selbst aufgerufen werden (Beendet unter Umständen, oder sogar im Normalfall, den gesammten Browser).

3. Man kann das ganze natürlich (soweit ich das überblicken kann) sehrwohl in einem Applet ausführen. Da die Applet.class ein extended Panel ist, kann man diesem Hauptapplet mit add() die übrigen hinzufügen. Nun muß init(), start(), stop() und destroy() allerdings vom Hauptapplet übernommen werden.

cu Spacerat


----------

