19.2 Das erste Hallo-Applet
Ein Programm wird leicht zu einem Applet, wenn es die Klasse Applet erweitert. Als Einstieg soll ein kleines Beispiel-Applet dienen.
Listing 19.1 HelloWorldApplet.java
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorldApplet extends Applet
{
public void paint( Graphics g )
{
g.drawString( "Hello world!", 50, 25 );
}
}
Die ersten beiden Import-Anweisungen binden die notwendigen Informationen über Applets und über Zeichenfunktionen ein. Das HelloWorldApplet erweitert die Klasse Applet, denn so wird ein Applet erzeugt. Eine main()-Funktion kommt nicht vor, und es muss eine Funktion paint() überladen werden, die den Bildschirmaufbau übernimmt. Der Web-Browser oder Applet-Viewer ruft diese Funktion auf.
Damit der Viewer aber überhaupt weiß, was zu machen ist, muss der HTML-Code einen Hinweis auf die Klasse geben, die in die Seite eingebettet wird. Dies wird über einen speziellen Tag erreicht.
Listing 19.2 index.html
<html><body>
<applet code="HelloWorldApplet.class" width="200" height="100"></applet>
</body></html>
Neben dem Namen der Klasse vermittelt das Applet-Tag der virtuellen Maschine auch noch die Ausmaße des Fensters, in dem das Applet zeichnen kann.
Hinweis Sun hat in der Version 1.4 geringfügig das Format für die Bytecode-Dateien geändert. Viele Browser und ihre virtuellen Maschinen haben damit Probleme. Um dem Compiler aus dem Java SDK 1.4 (und folgende) anzuweisen, das ältere Format zu erzeugen, muss der Schalter -target 1.1 angegeben werden.
|
Unter Java 1.1 lassen sich auch gepackten Dateien im Jar-Format übermitteln. Die Angabe der Klasse in der Code-Anweisung sollte keine Leerzeichen beinhalten, da dies dem Communicator und dem Applet-Viewer Probleme bereitet. Die Endung .class ist nicht in jedem Browser erforderlich, wird aber empfohlen.
Tipp Ein Applet im ganzen Browser-Fenster sichtbar machen. Mit einem HTML-Trick lässt sich eine Web-Seite so aufbauen, dass sie die maximale Ausdehnung bekommt.
|
<html><head>
<style type="text/css">
body { margin : 0 }
</style></head><body>
<applet code="applet.class" width="100%" height="100%"></applet>
</body></html>
Mit CSS, was ab IE 5 und Netscape 4 unterstützt wird, schalten wir die Verschiebung um ein paar Pixel aus. Da ein Applet in einem Browser-Fenster angezeigt wird, ist es in Java nicht möglich, die Dekoration des Browsers wegzuschalten. Mit einem neuen Fenster ohne Dekoration, welches von JavaScript angelegt wird, und einer geschickten Verschiebung ließe sich dies jedoch bewerkstelligen.
|