From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001
From: Sven Eisenhauer
+Das Einbinden eines Applets in ein HTML-Dokument
+erfolgt unter Verwendung des APPLET-Tags, es wird also durch <APPLET>
+eingeleitet und durch </APPLET>
+beendet. Zwischen den beiden Marken kann ein Text stehen, der angezeigt
+wird, wenn das Applet nicht aufgerufen werden kann. Ein applet-fähiger
+Browser ignoriert den Text. Beispiel:
+
+
+
+
+
+
+ Titel
+ Inhalt
+ Suchen
+ Index
+ DOC
+ Handbuch der Java-Programmierung, 5. Auflage
+
+ <<
+ <
+ >
+ >>
+ API
+ Kapitel 39 - Applets I
+
+
+
+
+
+39.2 Einbinden eines Applets
+
+
+
+
+
+
+
+39.2.1 Das APPLET-Tag
+
+
+
+
+Listing 39.4: Das APPLET-Tag
+
+
+
+
+
+001 <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=200>
+002 Hier steht das Applet Hello
+003 </APPLET>
+
+
+Ein Applet-Tag wird wie normaler Text in die Browser-Ausgabe eingebunden. +Das Applet belegt soviel Platz auf dem Bildschirm, wie durch die Größenangaben +WIDTH +und HEIGHT +reserviert wurde. Soll das Applet in einer eigenen Zeile stehen, müssen +separate Zeilenschaltungen in den HTML-Code eingebaut werden (beispielsweise +<p> oder <br>), +oder es muss ein Tag verwendet werden, dessen Ausgabe in einer eigenen +Zeile steht (z.B. <h1> +bis <h6>). + +
+Neben dem Ersatztext, der zwischen dem Beginn- und Ende-Tag steht, +besitzt ein Applet-Tag weitere Parameter: +
+Zwischen beiden Parameterarten besteht ein grundsätzlicher Unterschied. +Während die Parameter der ersten Gruppe (also CODE, +WIDTH +und HEIGHT) +vom Browser interpretiert werden, um die visuelle Darstellung des +Applets zu steuern, werden die Parameter der zweiten Gruppe an das +Applet weitergegeben. Der Browser übernimmt bei ihnen nur die +Aufbereitung und die Übergabe an das Applet, führt aber +selbst keine Interpretation der Parameter aus. + + + + +
+Der wichtigste Parameter des Applet-Tags heißt CODE +und gibt den Namen der Applet-Klasse an. Bei der Angabe des CODE-Parameters +sind einige Dinge zu beachten: +
+Alternativ kann die Klassendatei auch in einem der Verzeichnisse liegen, +die in der Umgebungsvariablen CLASSPATH +angegeben wurden. CLASSPATH +enthält eine Liste von durch Kommata getrennten Verzeichnissen, +die in der Reihenfolge ihres Auftretens durchsucht werden. CLASSPATH +spielt außerdem beim Aufruf des Compilers eine Rolle: Sie dient +dazu, die importierten Pakete zu suchen. + +
+Das Applet-Tag hat zwei weitere nichtoptionale Parameter WIDTH +und HEIGHT, die die Höhe +und Breite des für das Applet reservierten Bildschirmausschnitts +angeben. Innerhalb des Applets steht ein Rechteck dieser Größe +als Ausgabefläche zur Verfügung. + +
+Das Applet-Tag besitzt weitere optionale Parameter. Diese dienen zur +Konfiguration des Applets und zur Beeinflussung der Darstellung des +Applets und des umgebenden Textes. Tabelle 39.1 +gibt einen Überblick über die verfügbaren Parameter: + +
+
| Parameter | +Bedeutung |
| CODEBASE | +Hier kann ein alternatives Verzeichnis für +das Laden der Klassendateien angegeben werden. Fehlt diese Angabe, +wird das Dokumentenverzeichnis genommen. |
| ARCHIVE | +Angabe eines JAR-Archivs, +aus dem die Klassendateien und sonstigen Ressourcen des Applets geladen +werden sollen. Ein Beispiel zur Verwendung des ARCHIV-Parameters ist +in Abschnitt 51.6 bei der Vorstellung +von jar +zu finden. |
| OBJECT | +Name einer Datei, die den serialisierten +Inhalt des Applets enthält |
| ALT | +Alternativer Text für solche Browser, +die zwar das Applet-Tag verstehen, aber Java nicht unterstützen + |
| NAME | +Eindeutiger Name für das Applet. Er +kann zur Unterscheidung mehrerer, miteinander kommunizierender Applets +auf einer Webseite verwendet werden. |
| ALIGN | +Vertikale Anordnung des Applets in einer +Textzeile. Hier kann einer der Werte left, +right, +top, +texttop, +middle, +absmiddle, +baseline, +bottom +oder absbottom +angegeben werden. |
| VSPACE | +Rand über und unter dem Applet |
| HSPACE | +Rand links und rechts vom Applet |
+Tabelle 39.1: Optionale Parameter des APPLET-Tags
+ + + + ++Neben den Parametern des Applet-Tags gibt es die Möglichkeit, +Parameter an das Applet selbst zu übergeben. Dazu kann innerhalb +von <APPLET> und </APPLET> +das optionale Tag <PARAM> +verwendet werden. Jedes PARAM-Tag besitzt die beiden Parameter name +und value, die den Namen und +den Wert des zu übergebenden Parameters angeben. + +
+Innerhalb des Applets können die Parameter mit der Methode getParameter +der Klasse Applet +abgefragt werden: +
+
+
++public String getParameter(String name) ++ + |
++java.applet.Applet | +
+Für jeden angegebenen Parameter liefert getParameter +den zugehörigen Wert als String. +Numerische Parameter müssen vor der weiteren Verwendung also +erst konvertiert werden. Wird der angegebene Parameter nicht gefunden, +gibt die Methode null +zurück. + +
+Das folgende Listing demonstriert den Einsatz von getParameter +am Beispiel eines Applets, das eine rot-weiße Schranke zeichnet. +Das Applet erwartet zwei Parameter redwidth +und whitewidth, die die Breite +des roten und weißen Abschnitts angeben. Diese werden in der +init-Methode +gelesen und dem Array dx zugewiesen. +In paint +wird dieses Array dann verwendet, um abwechselnd weiße und rote +Parallelogramme der gewünschten Größe auszugeben. +Insgesamt entsteht dadurch der Eindruck einer rot-weißen Schranke: + + +
+
+
+
+001 /* Schranke.java */
+002
+003 import java.awt.*;
+004 import java.applet.*;
+005
+006 public class Schranke
+007 extends Applet
+008 {
+009 private int[] dx;
+010 private Color[] color;
+011
+012 public void init()
+013 {
+014 String tmp;
+015
+016 dx = new int[2];
+017 try {
+018 dx[0] = Integer.parseInt(
+019 getParameter("redwidth")
+020 );
+021 dx[1] = Integer.parseInt(
+022 getParameter("whitewidth")
+023 );
+024 } catch (NumberFormatException e) {
+025 dx[0] = 10;
+026 dx[1] = 10;
+027 }
+028 color = new Color[2];
+029 color[0] = Color.red;
+030 color[1] = Color.white;
+031 }
+032
+033 public void paint(Graphics g)
+034 {
+035 int maxX = getSize().width;
+036 int maxY = getSize().height;
+037 int x = 0;
+038 int flg = 0;
+039 Polygon p;
+040 while (x <= maxX+maxY/2) {
+041 p = new Polygon();
+042 p.addPoint(x,0);
+043 p.addPoint(x+dx[flg],0);
+044 p.addPoint(x+dx[flg]-maxY/2,maxY);
+045 p.addPoint(x-maxY/2,maxY);
+046 p.addPoint(x,0);
+047 g.setColor(color[flg]);
+048 g.fillPolygon(p);
+049 x += dx[flg];
+050 flg = (flg==0) ? 1 : 0;
+051 }
+052 }
+053 }
+
+ |
++Schranke.java | +
+Das folgende HTML-Dokument zeigt die Einbindung eines Schranken-Applets +mit einer Höhe von 10 Pixeln und einer Breite von 400 Pixeln. +Die roten Felder der Schranke sind 10 und die weißen 7 Pixel +breit: + + +
+
+
++001 <html> +002 <head> +003 <title>Schranke</title> +004 </head> +005 <body> +006 <h1>Schranke</h1> +007 <applet code="Schranke.class" width=400 height=10> +008 <param name="redwidth" value=10> +009 <param name="whitewidth" value=7> +010 Hier steht das Applet Schranke.class +011 </applet> +012 </body> +013 </html>+ + |
++Schranke.html | +
+Beim Aufruf mit dem Netscape Navigator sieht die Ausgabe des Applets +so aus: +
+ +
+Abbildung 39.2: Darstellung des Schranken-Applets im Netscape Navigator
++
![]() |
+
+
+ +Im Gegensatz zu einer Applikation wird ein Applet nicht direkt mit +dem Java-Interpreter java.exe +aufgerufen. Statt dessen wird es in eine HTML-Datei eingebunden und +indirekt über den Appletviewer +oder einen Web-Browser aufgerufen, der die HTML-Datei lädt. Unser +Programm kann beispielsweise mit dem folgenden Kommando gestartet +werden: |
+
+
|
+![]() |
+
+appletviewer Schranke.html ++ + +
+Auch die »echten« Web-Browser können meist mit einer +Datei als Argument aufgerufen werden. Alternativ kann die HTML-Datei +natürlich auch direkt aus dem laufenden Browser geladen werden. +Der Applet-Viewer ist kein vollwertiger Browser, sondern extrahiert +lediglich die APPLET-Tags +und ihre Parameter, um die in der HTML-Datei angegebenen Applets zu +starten. +
| Titel + | Inhalt + | Suchen + | Index + | DOC + | Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 + |
| << + | < + | > + | >> + | API + | © 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de + |