Ein Java-Applet wird aus dem Package java.applet abgeleitet. Im Laufe des Appletlebens können die 4 Methoden init(), start(), stop(), destroy() aufgerufen werden.

Unterschiede zwischen Applets und Anwendungen

Der Unterschied zwischen Java-Applets und -Applikationen liegt in der Art, wie diese ausgeführt werden. Applikationen werden mit dem Java-Interpreter ausgeführt, der die Haupt-.class-Datei der Applikation lädt. Dazu wird meist das java-Tool des JDK von der Kommandozeile aus aufgerufen.

Java-Applets hingegen werden innerhalb eines WWW-Browsers ausgeführt, der Java unterstützt. Applets können zusätzlich mit dem Applet-Viewer, der im Java Developer's Kit enthalten ist, angezeigt werden.

Ausführung

Um ein Applet auszuführen, muss es in eine Webseite eingefügt werden. Dies geschieht mit Hilfe von HTML-Tags, wie das auch bei Bildern und anderen Elementen der Fall ist. Wie eine Applikation hat auch ein Applet eine Haupt-.class-Datei und beliebige weitere .class-Dateien, die zur Ausführung des Applets benötigt werden. Die Standard-Klassenbibliothek von Java ist automatisch enthalten.

Ein erstes Applet

-- applets/hello: Hello gibt einen Text aus, der im Programm steht. Hello ist ein Applet und demonstriert, wie Java im Rahmen von HTML-Dokumenten verwendet wird.

Ein Applet ist ein Java-Programm mit einer grafischen Oberfläche, die mit dem Abstract Window Toolkit (AWT) so implementiert wird, daß sie dann in geeigneten Web-Browsern verfügbar gemacht werden kann.

Ein Applet wird immer als Unterklasse von Applet implementiert, der Aufbau eines Hauptfensters wie bei einer Applikation entfällt {applets/hello/Hello.java}.

import java.applet.*;   // find Applet class
import java.awt.*;   // find Graphics class

/** A class with the first Java applet */
public class Hello extends Applet {
/** hook to initialize the applet */
public void init () {
resize(150, 25);
}
/** redraw the Applet */
public void paint (Graphics g) {
g.drawString("Hello, World", 50, 25);
}
}

paint()
ist die Methode, mit der sich jede Component darstellt.
Graphics
repräsentiert einen Grafik-Kontext und dient zur Darstellung von Texten etc.

Ein Applet wird mit einem

<applet>
-Element aus einer HTML-Datei heraus aufgerufen: {applets/hello/0.html}



     <html>
     <head>
     <title>Hello, World</title>
     </head>
     <body>
     Here is the output:
     <p>
     <applet code="Hello.class" width=150 height=25>
     </applet>
     <p>
     Here is the <a href="Hello.java">source.</a>
     </body>
     </html>


Übersetzung und Ausführung

$ javac Hello.java   # Übersetzung einer Datei
$ java sun.applet.AppletViewer 0.html # Ausführung des  
<applet>

appletviewer
(Bestandteil des JDK), hier als Klasse aufgerufen, ist ein einfacher Web-Browser, der Applets anzeigt.

  import java.applet.*;
  public class Test extends Applet {
    public void init() { // automatisch beim ersten laden des applets
      System.out.println("init");
    }
    public void start() { // automatisch bei jedem start des applets
      System.out.println("start");
    }
    public void stop() { // wenn die html-seite mit dem applet verlassen wird
      System.out.println("stop");
    }
    public void destroy() { // beim schliessen des browsers
      System.out.println("destroy");
    }
  }

Ein minimales funktionsfähiges Applet ohne die oben genannten Methoden. Über die Zeichenfunktion und die paint-Methode wird ein Text ausgegeben.

  import java.applet.*;
  public class Test extends Applet {
    public void init() { // automatisch beim ersten laden des applets
      System.out.println("init");
    }
    public void start() { // automatisch bei jedem start des applets
      System.out.println("start");
    }
    public void stop() { // wenn die html-seite mit dem applet verlassen wird
      System.out.println("stop");
    }
    public void destroy() { // beim schliessen des browsers
      System.out.println("destroy");
    }
  }

Eine Mischung aus beiden Applets

  import java.applet.*;
  import java.awt.Graphics;
  public class Test extends Applet {
    public void init() { // wird automatisch beim ersten laden des applets aufgerufen
      System.out.println("init");
    }
    public void start() { // wird automatisch bei jedem start aufgerufen
      System.out.println("start");
    }
    public void paint(Graphics g) {
      showStatus("Hello, world");
      g.drawString("Hello, world",10,50);
    }
    public void stop() { // wenn die seite mit dem applet verlassen wird
      System.out.println("stop");
    }
    public void destroy() { // beim schliessen des browsers
      System.out.println("destroy");
   }
  }

Einen String in der init-Methode mit einem Wert versorgen und per paint ausgegeben

  import java.applet.Applet;
  import java.awt.Graphics;
  public class Test extends Applet {
    String s;
    public void init() {
      s = "Hallo";
    }
    public void paint( Graphics g ) {
      g.drawString( s, 50, 50 );
    }
  }

Einfaches Java-Applet das einen Text ausgibt.

  import java.awt.*;
  import java.applet.*;
  public class Applet1 extends Applet {
    TextField tf1 = new TextField(20);
    TextField tf2 = new TextField(20);
    TextArea  ta1 = new TextArea(10,50);

    public void start() {}

    public void init() {
      setBackground(Color.yellow);
      add(tf1);
      add(ta1);
      add(tf2);
    }

    public void paint(Graphics g){
      g.drawString("Hallo!", 20, 300);
    }

    public void stop() {}

    public void destroy() {}
  }

Applet-Klasse per HTML-Datei ausführen

Starten der Applet-Klasse per HTML-Datei im selben Verzeichnis:

  <html>
  <body>
  Test
  <applet code="Applet1.class" width="400" height="300" alt="Test-Applet">
  </applet>
  </body>
  </html>