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.
Graphicsreprä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>