7. Applets

 

 

Unsere Java - Programme sollen ja mal via Internet um die Welt wandern. Das machen wir so, dass wir die Ausführung der Programme einem WWW - Browser überlassen. Zur Erinnerung: bisher haben wir unsere Programme mit der virtuellen Maschine "java" ausgeführt. In modernen Browsern ist eine virtuelle Maschine eingebaut oder er weiss wenigstens, wie so eine Maschine zu starten ist.

Der Browser kann HTML Seiten interpretieren. Also schreiben wir eine HTML Seite und bauen in diese den Aufruf unseres Java Programmes ein. Falls Sie sich gar nicht auskennen mit HTML und Ihnen das Wort "tag" ein Fremdwort ist, lesen Sie doch bitte die ersten Abschnitte des Kapitels HTML aus dem ausgezeichneten Tutorial http://selfhtml.teamone.de/.

Auch hier soll die Einführung an Hand eines Beispiels geschehen:

  • Erstellen Sie ein neues Projekt namens AppletTest, diesmal aber mit dem Template "Basic Java Applet".

JCreator hat wieder viel Vorarbeit geleistet (diese Vorarbeit werden Sie übrigens in Kürze verstehen, wenn wir uns mit OOP beschäftigen!). Beachten Sie, dass er zwei Ordner gemacht hat: Im Ordner "src" ist das Applet vorbereitet und im Ordner "classes" die Webseite, welche das Applet aufruft.

  • Schauen Sie sich beide Dateien an!

AppletTest.htm ist wirklich so einfach wie möglich gehalten. Sie sehen, dass das Applet mit dem Tag <APPLET ...> eingefügt wird, der "code" Parameter gibt an, wie das Applet heisst (eine .class Datei, ev. auch .jar), die beiden andern - das haben Sie sicher erraten - sagen dem Browser, wieviel Platz er für das Applet reservieren soll (ganz ähnlich wie bei einem Bild).

AppletTest.java lässt erkennen, dass es sich um ein Applet handelt: "extends Applet". Sie sehen, dass ein Applet im Grunde einfacher ist, da es "von Haus aus" in der grafischen Umgebung des Browsers ist. Auch hier wird mit der Methode paint() gesagt, was geschrieben und gezeichnet werden soll. Das Applet ist schon lauffähig, also:

  • Übersetzen Sie und führen Sie aus!
  • Ändern Sie den Text und stellen Sie ihn in einen Kreis (falls Sie nicht mehr wissen, wie man zeichnet: Auf der Hauptseite gibts einen Link zum Glossar!

 

 
Applet Testen

Was ist jetzt da so gross anders beim Applet als vorher? Sehr viel, aber Sie merken nichts davon. Beim Ausführen ist JCreator ganz anders vorgegangen als bisher: Es wurde nicht die virtuelle Maschine java.exe ausgeführt, sondern appletviewer.exe. Dieses Programm ist eine Art Mini - Browser. Es erwartet, dass man ihm eine HTML Datei übergibt (hier AppletTest.htm). In dieser Datei sucht es nach dem <APPLET ...> Tag und führt das darin enthaltene Applet aus - den Rest der Webseite es links liegen. Appletviewer ist dazu da, Applets auszutesten. Im Folgenden sollen Sie diese Zusammenhänge etwas ausleuchten:

  • Öffnen Sie ein Fenster "Eingabeaufforderung" (DOS Fenster). Wechseln Sie mit "cd" in den Ordner, in welchem JCreator ihre Dateien abgelegt hat. Mit "dir" sollten Sie eine Reihe von Ordnern sehen, deren Namen genau den Namen Ihrer Projekte entsprechen. Sie sehen: JCreator erstellt für jedes Projekt einen eigenen Ordner!
  • WechselnSie in den Unterordner AppletTest. Sie sehen mit "dir" hier wieder die zwei Unterordner: In "src" sind Ihre Quelltext - Dateien, in "classes" alle Dateien, die bei der Ausführung des Projektes gebraucht werden. Wechseln Sie nach "classes". Es gibt hier eine .class und eine .htm Datei.
  • Versuchen Sie die .class Datei auszuführen wie früher ("java AppletTest"). Geht nicht, es ist keine main() Methode vorhanden: Ihre .class Datei ist nicht eine Java Applikation, sondern ein Java Applet!
  • Rufen Sie nun den Appletviewer auf: "appletviewer AppletTest.htm". Sie sollten so etwas wie im Bild rechts sehen. Wählen Sie auch das Menü und Sie sehen die typischen Applet Menüpunkte.
  • Schliessen Sie das schwarze DOS Fenster und öffnen Sie im Browser die Seite AppletTest.htm - et voilà!

Bemerkungen:

  1. Am einfachsten geht es, wenn Sie Ihre .htm und Ihre .class Datei im selben Ordner haben. Falls das Applet Bilder oder weitere Dateien braucht, am besten ebenfalls in diesen Ordner. Es gibt übrigens eine Möglichkeit, alles was ein Applet braucht in eine Archivdatei (.jar) zu verpacken - dazu mehr später.
  2. Schauen Sie Ihr Applet während der Entwicklung immer im Appletviewer und nicht im Browser an: Das caching des Browsers bewirkt, dass Sie nur mit grosser Mühe die jeweils aktuellste Version sehen.
  3. Leider können Sie nicht damit rechnen, dass jeder Browser, der auf dieser Welt auf einem PC läuft eine JVM (Java Virtual Machine) enthält (Der Kampf des Monopolisten MS hat hier seine Spuren hinterlassen!). Und wenn ja, dass diese die neusten Java Features unterstützt. Wenn Sie ein Applet in eine Website setzen, dann sollten Sie auch darauf hinweisen und bei der Programmierung möglichst alte Dinge verwenden.
  4. Ein Applet läuft in einer sogenannten "sandbox". Aus (guten!) Sicherheitsgründen hat es sehr wenige Rechte auf dem Computer, auf dem es läuft. Der Benutzer kann diese Rechte verändern, nicht aber der Programmierer, zum Glück!..
  5. Verschiedene Browser stellen Webseiten etwas unterschiedlich dar - das ist bei Applets nicht anders
  6. In den Browsern kann Java ein- und ausgeschaltet werden(Netscape: Menü "Bearbeiten", "Einstellungen", "Erweitert", "Java aktivieren". Explorer: Menü "Internetoptionen", "Sicherheit", "Stufe anpassen", "Microsoft VM").
  7. Angaben zur virtuellen Maschine (und Fehlermeldungen!) erhalten über die Java Konsole (Netscape: "Extras", "Web Entwicklung", "Java Konsole" Explorer: "Extras", "Sun Java Konsole").

Beurteilung

Beurteilung der Applets:

Anfangs ging man davon aus, dass Applets der Renner unter den Java Anwendungen würde. Inzwischen gibt es viele Fragezeichen und etliche Java Programme werden als Applikationen im Internet verteilt (Stichwort Java WebStart Technologie). Ein Beispiel für eine Java Applikation, welche über das Internet funktioniert ist yellownet von PostFinance (siehe rechts). Weiter versucht man, möglichst viel auf den Servern laufen zu lassen um den Problemen mit den Browsern aus dem Weg zu gehen (Stichwort Java Servlets). Und doch: Applets sind ein gutes Ding.

Sehen Sie sich um:

  • Öffnen Sie im Browser (Ordner jsdk1.4..., demo, applets) z.B. "WireFrame", "example1.htm". Drehen Sie den Würfel mit der Maus! Auch andere Beispiele sind erlaubt!
  • Oder ein Beispiel aus der Physik: Erzwungene Schwingung.



 

 

 

 

Frage:

Woran erkennt man ob es sich um ein Applet oder eine Applikation handelt bei Java?