getAppletContext().getApplets() und IE 5 - Fehler?
Jan Huss
- java
Hallo Leute,
dieser Code sollte mir eigentlich alle Applets auf meiner Seite auflisten:
for (Enumeration e = getAppletContext().getApplets();
e.hasMoreElements();) {
Applet current = (Applet) (e.nextElement());
System.out.println("Jetzt: " + current);
}
Ja, wie gesagt, er sollte. Im Appletviewer funktioniert das ganze auch wunderbar, im IE 5 bekomme ich jedoch immer nur das letzte Applet auf der Seite zurück und das ist alles andere als witzig.
Habt Ihr Vorschläge?
Gruß Jan
Ps: - Die Applets binde ich so ein:
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
WIDTH = 600 HEIGHT = 400 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.2/jinstall-12-win32.cab#Version=1,2,0,0">
<PARAM NAME = CODE VALUE = "com.hussign.redsuite.ContentEditor.class" >
<PARAM NAME = CODEBASE VALUE = "../javaclasses/" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2">
<COMMENT>
<EMBED type="application/x-java-applet;version=1.2" codebase="../javaclasses/" java_CODE = "com.hussign.redsuite.ContentEditor.class" code="com.hussign.redsuite.ContentEditor.class" WIDTH = 600 HEIGHT = 400 ALIGN = middle pluginspage="http://java.sun.com/products/plugin/1.2/plugin-install.html">
<NOEMBED>
</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>
Noch ein Nachtrag,
ich sehe gerade das dieser Fehler auch in anderen Browsern auftritt, da diese alle die angegebene virtuelle Maschine nutzen.
Gruß Jan
Hallo,
hab das Problem umgangen wen es interessiert:
Wie gesagt brachte mir die Methode getApllets() immer nur das letzte Applet der html-Datei.
Also habe ich ein neues Applet AppletControler erstellt welches in einer Methode setAppletConnection auf die Übergabe von Applets wartet.
Bei diesen prüft es dann den Namen und kann diese damit zuordnen.
Jedes andere Applet meldet sich nun in seiner init-Methode bei diesem Controler an. (Da der das letzte Applet der Seite ist kommen alle zu ihm.)
Möchte ein Applet auf ein anderes zugreifen, so ruft es eine Methode getAppletConnection des Controlers auf und übergibt den Namen des gewünschten Applets. Es erhällt nun dieses Applet vom Controler und castet es noch in die gewünschte Klasse um nun damit zu machen was es wollte.
Ach ja, ich frage bei der Erkennung des AppletControlers vorsichtshalber ab ob er wirklich eine Instanz des selbigen ist - Ist uncool wenn ich auf einmal doch eine Liste aller Applets zurück bekomme und es deshalb zu Fehlern kommt.
Gruß Jan