Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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
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:
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
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
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.