Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 7. Auflage
 <<    <     >    >>   API  Kapitel 40 - Applets I

40.2 Einbinden eines Applets



40.2.1 Das APPLET-Tag

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 bei Bedarf ein Text stehen, der angezeigt werden soll, wenn das Applet nicht aufgerufen werden kann; ein applet-fähiger Browser ignoriert den Text. Beispiel:

001 <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=200>
002 Hier steht das Applet Hello
003 </APPLET>
Listing 40.4: Das APPLET-Tag

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 dem 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 das Applet zu laden und seine visuelle Darstellung zu steuern, werden die Parameter der zweiten Gruppe an das Applet selbst weitergegeben. Der Browser übernimmt bei ihnen nur die Aufbereitung und die Weitergabe, führt aber selbst keine Interpretation der Parameter aus.

40.2.2 Die Parameter des Applet-Tags

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 40.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 53.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 40.1: Optionale Parameter des APPLET-Tags

40.2.3 Parameterübergabe an Applets

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     dx = new int[2];
015     try {
016       dx[0] = Integer.parseInt(
017         getParameter("redwidth")
018       );
019       dx[1] = Integer.parseInt(
020         getParameter("whitewidth")
021       );
022     } catch (NumberFormatException e) {
023       dx[0] = 10;
024       dx[1] = 10;
025     }
026     color = new Color[2];
027     color[0] = Color.red;
028     color[1] = Color.white;
029   }
030 
031   public void paint(Graphics g)
032   {
033     int maxX = getSize().width;
034     int maxY = getSize().height;
035     int x = 0;
036     int flg = 0;
037     Polygon p;
038     while (x <= maxX+maxY/2) {
039       p = new Polygon();
040       p.addPoint(x,0);
041       p.addPoint(x+dx[flg],0);
042       p.addPoint(x+dx[flg]-maxY/2,maxY);
043       p.addPoint(x-maxY/2,maxY);
044       p.addPoint(x,0);
045       g.setColor(color[flg]);
046       g.fillPolygon(p);
047       x += dx[flg];
048       flg = (flg==0) ? 1 : 0;
049     }
050   }
051 }
Schranke.java
Listing 40.5: Ein parametrisiertes Applet

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
Listing 40.6: Die HTML-Datei zum Schranken-Applet

Beim Aufruf mit dem Netscape Navigator sieht die Ausgabe des Applets so aus:

Abbildung 40.2: Darstellung des Schranken-Applets im Netscape Navigator

Zu Debug-Zwecken kann ein Applet auch mit dem Programm Appletviewer des JDK aufgerufen werden. Ein Web-Browser ist dann nicht erforderlich. Unser Programm kann beispielsweise mit dem folgenden Kommando gestartet werden:

appletviewer Schranke.html

Bei Bedarf können auch die »echten« Web-Browser mit einer Datei als Argument aufgerufen werden. Der Applet-Viewer ist nämlich kein vollwertiger Browser, sondern extrahiert lediglich die APPLET-Tags und ihre Parameter aus der HTML-Datei, um die darin angegebenen Applets zu starten. Bei Aufruf mit einem vollwertigen Browser wird dagegen auch der restliche HTML-Code interpretiert und zur Anzeige gebracht.


 Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 7. Auflage, Addison Wesley, Version 7.0
 <<    <     >    >>   API  © 1998, 2011 Guido Krüger & Heiko Hansen, http://www.javabuch.de