JavaScript findet Applet Methode nicht

JimK

Bekanntes Mitglied
Hallo,

Applet SysInfo.jar:

Java:
package de.phphydro.sysinfoapplet;

import java.applet.Applet; 
import java.awt.*; 
import java.net.InetAddress;
import java.net.UnknownHostException;

import netscape.javascript.*;

public class SysInfo extends Applet{
	
	public void paint(Graphics g) {
	      g.drawString(getUsername(), 50, 25);
	    }
		
		 
	 public String getTest() {
		 
		 
		 return "Test erfolgreich!";
    }
	 
	 public String getUsername()
	 {
		 return System.getProperty("user.name"); //Soll den Benutzernamen zurückgeben
	 }

}

html code:

HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>PHPHydro</title>
</head>
<body>

<applet width=300 height=100 id="test" name="test" code="de.phphydro.sysinfoapplet.SysInfo.class" archive="SysInfo.jar">
</applet>
	<SCRIPT language="JavaScript">
			alert(document.applets.length);
			document.write(document.applets[0].getTest());
	</SCRIPT>
</body>
</html>

ich habe ein kleines Problem mit meinem Applet. 🙁 Ich möchte gerne die Methoden per JavaScript aufrufen, aber ich bekomme ständig die Meldung "TypeError: document.applets[0].getTest is not a function" und ich weiß einfach nicht warum.
Könnt ihr mir helfen?
 
Also ich weiß zwar nicht, ob es nur daran liegt, bin auch nicht mit JavaScript vertraut, aber du hast in deiner SysInfo Klasse keine init Methode drin.
Du musst, wenn du ein Applet hast, eine init Methode haben, in der du alles für's Applet wichtige reinschreibst 😉 und von da dann die Methoden aufrufst.

Du hast außerdem auch keinen Konstruktor und keine main Methode.
Deine Klasse weiß also wahrscheinlich auch nicht, wo sie anfangen soll 😉

Am besten wäre es, wenn du in deiner noch nicht vorhandenen public static void main(String[]args){} den Konstruktor aufrufst, von dort aus in die init() methode gehst, und von da aus in alle anderen 😉

Gruß BK
 
meines wissens benötigt ein applet keine main methode, wohl aber eine init methode wie BK117 schrieb. ein konstruktor ist auch nicht nötig

Jedes Applet besitzt vier Methoden, die seinen Lebenszyklus bestimmen. Der Aufruf dieser Methoden erfolgt bei bestimmten Benutzeraktionen automatisch vom Browser. Zu diesen Aktionen zählt z. B. das Laden eines Applets oder das Verlassen einer HTML-Seite, in die ein Applet eingebunden ist. Zu diesen Methoden gehören:

init() Wird immer aufgerufen, wenn das Applet initialisiert wird. Dies geschieht sofort, nachdem es geladen ist.

start() Wird nach der Initialisierung eines Applets ausgeführt. Außerdem findet ein Aufruf dieser Methode immer dann statt, wenn der Browser bzw. der Appletviewer von der Icon-Darstellung wieder auf Normalgröße gebracht wird. Bei Browsern wird start() auch dann aufgerufen, wenn eine Seite, auf der sich ein Applet befindet, zum wiederholten Male geladen wird.

stop() Ist das Gegenstück zu start(). Ein Aufruf erfolgt, wenn der Browser bzw. der Appletviewer zum Icon verkleinert oder eine HTML-Seite mit eingebundenem Applet in einem Browser verlassen wird.

destroy() Wird immer aufgerufen, wenn das Applet zerstört wird. Die Zerstörung tritt z. B. ein, wenn es aus dem Browser entfernt wird. Im Laufe einer WWW-Sitzung werden u. U. viele Applets geladen. Dadurch muss eine große Speichermenge zur Verfügung stehen. Damit der Umfang des belegten Speichers nicht ständig steigt, schafft z. B. der Netscape-Navigator Platz, indem bei übermäßiger Speicherbelastung alte Applets entfernt werden. Wird ein entferntes Applet erneut geladen, durchläuft es den Initialisierungsvorgang von neuem.
s. http://www.dpunkt.de/java/Programmieren_mit_Java/Applets_und_Applikationen/6.html
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben