Java Tutorium

[Applets]

Java-Programme in Webseiten - Applets


Allgemein

Applets sind Java-Programme, die "im Internet" laufen. Dabei übernimmt der Browser (z.B. der Netscape Navigator oder der Internet Explorer) die Aufgabe und Funktionalität des Interpreters. Applets werden sehr breit bei Homepages eingesetzt. Ob es zum verschönern der Seiten durch Grafikspielereien geht, um zusätzliche Interaktivität, oder um Grafiken zu animieren. Einige schöne Beispiele dazu kann man bei hitzel.com sehen.


Programmierung

In der Programmierung unterscheiden sich Applets in 3 Punkten von den uns bisher bekannten Programmen:

  1. Zu Anfang werden 2 import-Angaben gemacht:
    import java.applet.Applet;
    import java.awt.Graphics;
    
    Diese Angaben werden bei Applet immer benötigt!

  2. Ein Applet ist eine abgeleitete Klasse. Unsere Kopfzeile lautet:
     class Beispiel extends Applet
    Dabei bedeutet extends Applet, dass unsere Klasse Beispiel seine Methoden von der Klasse Applet "erbt"

  3. Ein Applet besitzt keine main-Methode. Die Main-Methode wird bei Applets von dem Browser übernommen.

Beispiele

import java.applet.Applet;
import java.awt.Graphics;

public class Beispiel extends Applet {
  public void paint (Graphics g) {
    g.drawString("Hi Welt!", 50, 25);
  }
}


import java.applet.Applet;
import java.awt.Graphics;

public class Demo extends Applet {
  public void paint (Graphics g) {
    g.drawRect(10,10,50,50);
    g.drawRect(100,70,150,130);
    g.drawOval(50,50,150,200);
    g.drawOval(80,130,150,150);
  }
}

Wie man anhand dieser beiden Beispiele sehen kann sind Applets immer nach dem selben Muster aufgebaut: Alle haben 2 import-Anweisungen, die erste Klassenzeile endet immer mit extends Applet {, alle besitzen die Methode paint der ein Objekt Graphics übergeben wird.


Methoden der Klasse Applet

Ein Applet stellt dem Programmierer 6 Methoden zum selbständigen Be- bzw. Überschreiben zur Verfügung.

Methode Beschreibung
init() Methode, die eine Art Konstruktor repräsentiert. Sie wird nur einmal - beim ersten Aufruf des Applets vom Browser durchgeführt. Hier sollten alle Anweisungen stehen, die zu Beginn eines Applets nötig sind: z. B. Initialisierung von Variablen.
start() Methode, die bei jedem Betreten der Seite mit einem Applet ausgeführt wird.
stop() Methode, die bei jedem Verlassen der Seite mit einem Applet ausgeführt wird.
destroy() Methode, die beim Beenden des Applets ausgeführt wird, z.B. durch das Schliessen des Browsers
paint() Methode, die bei jedem "Neuaufbau" des Applets durchgeführt wird. Wenn z.B. ein anderes Fenster über dem Applet-Bereich lag, muss paint() wieder ausgeführt werden, um den Inhalt des Applets zu zeichnen.
update()  

Methoden der Klasse Graphics

In der Java-API sind alle Methoden der Klasse Graphics aufgelistet.
In diesem Kurs benutzen wir folgende Methoden:

  • draw3DRect
  • drawArc
  • drawLine
  • drawOval
  • drawRect
  • drawString
  • fill3DRect
  • fillArc
  • fillOval
  • fillRect
  • fillRoundRect

Die Webseite des Applets

Wie oben bereits erwähnt laufen Applets nur auf Webseiten ab. Damit man ein selbstgeschriebenes Applet ansehen kann, muss man zu seinem Applet noch eine eigene Webseite erstellen. Eine Webseite sieht (im Grundgerüst) so aus:

<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY BGCOLOR="CFCFCF">
<APPLET CODE="Beispiel.class" WIDTH=400 HEIGHT=300>
Bitte ermöglichen Sie die Darstellung von Java-Inhalten in Ihrem Browser! </APPLET>
</BODY>
</HTML>

Diese Datei könnt Ihr mit Cut&Paste in den Editor übernehmen und unter einem selbst gewählten Namen mit der Endung .html (z.B. hallo.html) im selben Ordner wie Euer Applet abspeichern.
In dieser HTML-Datei könnt Ihr die fett geschriebenen Angaben nach Euren Bedürfnissen ändern:

  • Beispiel.class steht für den Namen Eures Applets.
  • WIDTH=400 ist die Breite des Fensters in dem Euer Applet abgebildet wird.
  • HEIGHT=400 ist die Höhe des Fensters in dem Euer Applet abgebildet wird.

Um Euer Applet zu starten öffnet Ihr zuerst einen Browser. Danach geht Ihr mit der Maus in die Rubrik "File oder Datei" und dort auf den Eintrag "Open Page oder Öffnen". Danach gebt Ihr in dem darauf folgenden Fenster den Namen und Pfad Eurer HTML-Datei an.


Java-Konsole

Bei umfangreichen Applets ist es notwenig, bestimmte Bereiche des Applets durch Hinweise auf der Standardausgabe zu dokumentieren. Dies erleichtert unter anderem die Fehlersuche. Hinweise auf die Standardausgabe werden durch die bekannte Anweisung System.out.println() programmiert. Diese Texte werden dann in der sogenannten Java-Konsole angezeigt.

Eine Java-Konsole kann man wie folgt starten:

Netscape Navigator
Communicator -> Tools --> Java Console

Internet Explorer
Extras -> Internetoptionen -> Registrierkarteneintrag Erweitert -> Haken bei Java-Konsole aktiviert machen -> Internet Explorer schließen -> Internet Explorer starten -> Ansicht -> Java-Befehlszeile
danach ist bei jedem Neustart (innerhalb Euerer heutigen Sitzung) unter Ansicht der Eintrag Java-Befehlszeile zu sehen.


Kleines Applet-ABC

Damit die Verwirrung nicht allzu groß wird noch einmal ein Schritt-für-Schritt-Kochrezept wie man Applets programmiert:

  1. Schreibe Dein Programm / Applet im Editor
    Vergiss nicht die beiden Angaben import java.applet.Applet; & import java.awt.Graphics; vor der Zeile
    class Meinprogramm extends Applet {
    anzugeben.
  2. Prüfe Dein Programm auf mögliche Fehler (Ebensoviele geschweifte Klammern offen wie geschlossen? Hinter jeder Anweisung steht ein ; ?,usw)
  3. Speichere Dein Programm unter dem selben Namen wie Du es in der Zeile mit class genannt hast und setze dahinter die Endung .java
  4. Compiliere das Programm -> es entsteht eine .class - Datei
  5. Kopiere Dir die HTML-Seite und ändere "Beispiel" in deinen Klassennamen um!
  6. Speichere die HTML-Datei mit einem Namen Deiner Wahl mit der Endung .html ab.
  7. Rufe die HTML-Datei in einem Browser auf!

P.S. Solltest Du Änderungen in der .java Datei vornehmen, so musst Du die Datei nochmals kompilieren und danach beim Betrachten durch den Browser die Kombination Hochstelltaste und Neu-Laden/Aktualisieren drücken.


Aufgaben

  Aufgabe Beispiele
1. Schreiben Sie ein Applet, das Ihren Namen und das Erstelldatum des Applets ausgibt! HalloWeltApplet.java
HalloWeltApplet.html
2. Schreiben Sie ein Applet, das 20 mal alle 10 Pixel nach Rechts ein 5x5 Pixel großes Rechteck zeichnet. Rechtecke.java
Rechtecke.html
3. Schreiben Sie ein Applet, das die Funktion f(x)=x2 abbildet. Funktion.java
Funktion.html
4. Schreiben Sie ein Applet, das ein Gesicht zeichnet. Gesicht.java
Gesicht.html
5. Schreiben Sie das Applet MeilenSteine, das zu jedem Ausführen der einzelnen Methoden (init,start,stop,destroy) eine Kurzbeschreibung auf die Java-Konsole ausgibt. MeilenSteine.java
MeilenSteine.html
6. Schreiben Sie Applet das einen "primitiven" Seitenzähler simuliert - d.h. das Applet soll zählen, wie oft ein Benutzer die Seite mit dem Applet schon angesehen hat.
P.S. Leider funktioniert dieses Programmierbeispiel nur unter Netscape Navigator 4.7
SeitenZaehler.java
SeitenZaehler.html
7. Schreiben Sie Applet das einen Farbverlauf von Blau nach Rot darstellt. Verwenden Sie dazu die Routine g.setColor(new Color(r,g,b));.
Dabei steht r für den Rotwert, g für den Grünwert und b für den Blauwert der Farbe!
Farbverlauf.java
Farbverlauf.html
6. Schreiben Sie Applet das einen Weihnachtsstern zeichnet. Benutzen Sie dazu die Methode "fillPolygon". bisher nix hinterlegt
auch kein Beispiel!

Wer noch weitere Übungsaufagben braucht, kann sich die Seiten von Hubert Partl (siehe oben) ansehen. Dort gibt es anspruchsvollere Aufgaben. Ansonsten dürft Ihr Euch gerne an mich wenden.