Kummunikation zwichen Applets mit unterschiedlicher Codebase-?

Smily0412

Mitglied
hoi,

Ich werde mein Problem mal an einem kleinen Beispiel verdeutlichen.

Dazu nehmen wir folgendes Applet:

Java:
import java.applet.Applet;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Enumeration;

import javax.swing.JOptionPane;

public class Test extends Applet implements MouseListener{
	private static final long serialVersionUID = 1L;

	@Override
	public void init() {
		addMouseListener(this);
		setBackground(Color.BLACK);
	}

	public void mouseClicked(MouseEvent arg0) {
		Applet apl;
		Enumeration<Applet> applets = getAppletContext().getApplets();
		while(applets.hasMoreElements()) { 
			apl = applets.nextElement();
			JOptionPane.showMessageDialog(apl, apl.getParameter("testpar"));
		}
	}

	public void mouseEntered(MouseEvent e) {}
	public void mouseExited(MouseEvent e) {}
	public void mousePressed(MouseEvent e) {}
	public void mouseReleased(MouseEvent e) {}
}
Was das applet tun soll ist einfach: Alle anderen Applets auf der Seite finden und ausgeben.
Aber mir ist aufgefallen, dass nur die Applets gefunden werden, die dieselbe codebase haben.

um es mal an einem html-code zu zeigen:

HTML:
<applet code="Test.class" WIDTH="200" HEIGHT="200" alt=" ">
<param name="testpar" value="Applet 1"></applet>
<applet code="Test.class" WIDTH="200" HEIGHT="200" alt=" ">
<param name="testpar" value="Applet 2"></applet>
<applet code="Test.class" WIDTH="200" HEIGHT="200" alt=" ">
<param name="testpar" value="Applet 3"></applet>
<br />

<applet code="Test.class" codebase="http://p4120.r2h-config.de" WIDTH="200" HEIGHT="200" alt=" ">
<param name="testpar" value="Applet 4"></applet>
<applet code="Test.class" codebase="http://p4120.r2h-config.de" WIDTH="200" HEIGHT="200" alt=" ">
<param name="testpar" value="Applet 5"></applet>
<applet code="Test.class" codebase="http://p4120.r2h-config.de" WIDTH="200" HEIGHT="200" alt=" ">
<param name="testpar" value="Applet 6"></applet>

Die Datei liegt im selben verzeichniss wie die Class datei. Ausserdem liegt genau dasselbe applet nochmal auf meinem Webspace

Wenn ich eines der Oberen 3 Applets anklicke, findet dieses auch nur die Oberen 3, also die mit der selben codebase.

bei den Unteren 3 ist es genauso.

Um zum Punkt zu kommen:
Kann ich mit meinem Applet auch irgendwie applets finden, die eine andere Codebase haben?
 
Laut dieser Quelle scheint diese Einschränkung vom verwendeten Browser abzuhängen. Hast Du's mal mit einem anderen Browser versucht?

Hm, und hier ist die Rede davon, dass getApplets sowieso nur die Applets mit derselben Codebase liefert.
 
Zuletzt bearbeitet:
heureka das ist es...
Ich hats mit dem Firefox versucht, das ging nicht.

Aber der Konqueror scheint das zu können.. andere browser zum testen hab ich hier nicht ^^

naja soviel zum thema gemeinsame standarts :/

cu,
Smily0412
 
Was heißt hier gemeinsame Standards? Webprogrammierung ist mit Abstand das schlimmste was es gibt (zumindest wenn es nach mir geht), nachdem jeder Browser den htmlcode anders interpretiert und mehr oder weniger scriptsprachen unterstützt. Solltest du öfter Code für Webanwendungen schreiben wäre es gut diesen für die gängigsten Browser zu testen, da solche Probleme sehr häufig vorkommen.
 
Smiley hat nicht ganz unrecht: er ruft eine Methode der JRE auf, bei welcher man auch unter unterschiedlichen Umgebungen dieselben Ergebnisse erwarten können sollte. Das hat nichts mit der unterschiedlichen Interpretation von HTML, CSS o.ä. von Rendering-Engines zu tun.
 
Zurück