Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.


Java ist auch eine Insel von Christian Ullenboom
Buch: Java ist auch eine Insel (Galileo Computing)
gp Kapitel 19 Applets, Midlets und Sound
gp 19.1 Applets und Applikationen - wer darf was?
gp 19.2 Das erste Hallo-Applet
gp 19.3 Die Zyklen eines Applets
gp 19.4 Parameter an das Applet übergeben
gp 19.4.1 Wie das Applet den Browser-Inhalt ändern kann
gp 19.4.2 Den Ursprung des Applets erfragen
gp 19.4.3 Was ein Applet alles darf
gp 19.5 Fehler in Applets finden
gp 19.6 Browserabhängiges Verhalten
gp 19.6.1 Java im Browser aktiviert?
gp 19.6.2 Läuft das Applet unter Netscape oder Microsoft Explorer?
gp 19.6.3 Datenaustausch zwischen Applets und Java-Skripten
gp 19.7 Datenaustausch zwischen Applets
gp 19.8 Musik in einem Applet und in Applikationen
gp 19.8.1 Fest verdrahtete Musikdatei in einem Applet
gp 19.8.2 Variable Musikdatei über einen Parameter
gp 19.8.3 WAV- und MIDI-Dateien abspielen
gp 19.9 Webstart
gp 19.10 Java 2 Micro Edition
gp 19.10.1 Konfigurationen
gp 19.10.2 Profile


Galileo Computing

19.2 Das erste Hallo-Applettoptop

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.





Copyright (c) Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de