Generell ist es nicht erforderlich, Applets von Applikationen zu trennen. Ein Applet kann gleichzeitig eine Applikation sein und umgekehrt. Die Unterscheidung ist lediglich von den Methoden abhängig, die implementiert werden und von der Klasse, die der Hauptklasse vererbt wird. Wenn die Anforderungen eines Applets und einer Applikation erfüllt sind, kann man das Programm sowohl in einem Browser, als auch von der Konsole aus starten.
Hierzu muß das Programm
. die Methode main implementieren.
. von der Klasse java.applet.Applet abgeleitet sein.
Die Parameter, die ein Applet von der HTML-Seite übergeben bekommt, können bei einer Applikation gegebenenfalls durch die Kommandozeile übergeben werden, um auch eine einheitliche Schnittstelle des Programmes nach außen definieren zu können.
Import java.applet.Applet;
Public class AppletApplicationDemo extends Applet {
//Aufruf beim Start als Applikation
public static void main (String args[]) {
//Zuerst wird eine Instanz der Klasse angelegt und
//anschließend der Name der Programm-Art ausgegeben
AppletApplicationDemo myDemo = New AppletApplicationDemo();
MyDemo.whoamI ("Applikation");
}
//Aufruf beim Start als Applet
public void init() {
//Hier ist ein direkter Aufruf von 'whoamI' möglich
whoamI ("Applet");
}
public void whoamI (String program) {
//Ausgabe der Programm-Art
System.out.println("Sie haben ein(e)"+ program +" gestartet!");
}
}
Startet man das Programm von der Konsole aus, wird in main eine Instanz der Hauptklasse erzeugt. Die Objektvariable dieser Instanz befindet sich innerhalb von main. Somit kann über diese Instanz auf die Methoden und Felder der Klasse, in der sich main befindet zugegriffen werden.
Ist diese Instanz angelegt, wird whoamI, mit dem Argument Applikation aufgerufen. Dort wird der Text auf der Standardausgabe ausgegeben.
Beim Start als Applet ist der Ablauf analog. In diesem Fall muß jedoch nicht erst eine Instanz der eigenen Klasse angelegt werden und whoamI wird der Text Applet übergeben. Auf diese Weise wird sichergestellt, daß man anhand des ausgegebenen Textes immer sagen kann, wie das Programm gestartet wurde. In diesem Fall übernimmt init(), die Rolle, die main in einer Applikation besitzt.
|