Folge 5: Java-Applets (Kurzfassung)

Buch-Version

Die Folgen 1 bis 9 gibt es jetzt auch als Buch-Version. Noch nicht gedruckt, aber in Form von drei PDF-Dateien. Die Buch-Version sieht besser aus und enthält Themen, die ich aus Zeitgründen im regulären Kurs nicht behandeln kann, zum Beispiel das komplette Kapitel 6 sowie einige Exkurse.

Die längere Originalfassung der Folge 5 finden Sie in der Buchversion!

Schritt 1 - Ein neues Applet erstellen

  • BlueJ starten, neues Projekt anlegen.

  • Neue Klasse erzeugen, darauf achten, dass "Applet" gewählt wurde.

Schritt 2 - Quelltext aufräumen

"Entrümpeln" Sie den von BlueJ erzeugten Quelltext oder tippen Sie den folgenden Minimal-Quelltext für das Applet ein (ohne Zeilennummern):

 1 import java.awt.*;
 2 import javax.swing.*;

 3 public class Zeichenbrett extends JApplet
 4 {
 5    public void init()
 6    {
 7    }

 8    public void paint(Graphics g)
 9    {
10       g.drawString("Applet", 20, 20);
11    }
12 }

Schritt 3 - Quelltext-Analyse

  • Die beiden ersten Zeilen importieren wichtige Java-Bibliotheken.

  • Zeile 3 ist der Kopf der Klasse Zeichenbrett. Wichtig ist der Zusatz "extends JApplet". Damit wird klar gemacht, dass das Zeichenbrett ein Applet ist.

  • Zeilen 5 bis 7 enthalten die noch leere init()-Methode des Applets.

  • Zeilen 8 bis 11 zeigen die wohl wichtigste Methode des Applets, die paint()-Methode. Die paint()-Methode ist dafür verantwortlich, das der Benutzer überhaupt etwas sehen kann in dem Java-Applet. Hier können Sie Texte ausgeben, Kreise, Rechtecke und Linien malen und so weiter.

Schritt 4 - erstes Kompilieren und Testen

  • Kompilieren-Button klicken

  • Mit rechter Maustaste auf die Applet-Klasse klicken

  • Befehl "Applet ausführen" wählen

  • Im Dialog-Fenster die Standard-Einstellungen übernehmen und OK klicken.

Schritt 5 - einen Kreis malen

Ergänzen Sie den Quelltext der Methode paint() wie folgt:

public void paint(Graphics g)
{
   g.drawString("Beispiel-JApplet", 20, 20);
   g.drawOval(50,100,400,300);
}

Es wird ein Oval gezeichnet, 400 Pixel breit und 300 Pixel hoch.

Die beiden ersten Parameter der drawOval()-Methode geben die Koordinaten der linken oberen Ecke des Rechteckes an, welches das Oval umschreibt. Die beiden zweiten Parameter geben Breite und Höhe dieses Rechteckes an.

Die wichtigsten Zeichen-Befehle der Klasse Graphics.

Schritt 6 - zehn Kreise malen

Wir wollen jetzt nebeneinander zehn kleine Kreise in das Applet malen. Natürlich könnte man dazu zehnmal den Befehl drawOval() hinschreiben und jedes mal die Parameter neu bestimmen. Aber wozu haben wir eigentlich in der Folge 4 über for-Schleifen gesprochen? Wir wollen jetzt diese for-Schleifen mal für etwas Sinnvolles einsetzen. Hier die entsprechende paint()-Methode:

public void paint(Graphics g)
{
   g.drawString("Zehn Kreise", 20, 20);
		
   for (int i = 1; i <= 10; i++)
      g.drawOval(40*i,100,40,40);
}

So schwer war das doch gar nicht. Wir lassen die for-Schleife zehnmal durchlaufen. In jedem Schleifendurchgang wird ein Kreis gezeichnet. Die zehn Kreise unterscheiden sich nur in ihren x-Koordinaten. Die y-Koordinate hat immer den Wert 100, und Breite und Höhe des umgebenden Rechtecks bleiben auch gleich.

Schritt 7 - 81 Kreise malen

Kommen wir zu den ersten Übungen der Folge 5

Übung 5.1 (2 Punkte)

Lesen Sie im Theorieteil der Folge 4 (for-Schleifen) nach, was man unter einer geschachtelten for-Schleife versteht und ergänzen Sie dann das Java-Applet so, dass zehn Reihen mit je zehn Kreisen gezeichnet werden, also insgesamt 100 Kreise.

Übung 5.2 (4 Punkte)

Erstellen Sie ein Applet, das 9 x 9 Kreise zeichnet, abwechselnd weiß und schwarz, wie in einem Schachbrettmuster angeordnet. Schauen Sie in der Referenz nach, wie man einen gefüllten Kreis zeichnen kann.

Das Problem bei dieser Übung ist es, die beiden for-Schleifen so zu verändern, dass immer abwechselnd ein weißer Kreis und ein schwarzer Kreis gezeichnet werden. Bei einer ungeraden Anzahl von Kreisen, z.B. 7 x 7 oder 9 x 9 geht das viel einfacher als bei einer geraden Anzahl von Kreisen.

Die wichtigsten Zeichen-Befehle der Klasse Graphics.

Schritt 8 - farbige Rechtecke

Übung 5.3 (2 Punkte)

Betrachten Sie das obige Applet. Es wurde durch folgende paint()-Methode erzeugt:

public void paint(Graphics g)
{
   g.drawString("Farbverlauf", 20, 20);
   for (int i = 1; i <= 10; i++)
   {
      g.setColor(new Color(i*25,255,255));
      g.fillRect(i*40,100,40,40);
      g.setColor(new Color(0,0,0));
      g.drawRect(i*40,100,40,40);
   }
}

Erweitern Sie den Quelltext so, dass ein zweidimensionaler Farbverlauf erzeugt wird. Das heißt, Sie müssen 10 x 10 solcher Kästchen zeichnen lassen - also wieder eine doppelte for-Schleife einsetzen - und die Farbe der Kästchen von beiden Laufvariablen abhängig machen.

Ergänzung zur Folge 5

Wenn Sie Lust auf weitere Übungen haben und/oder bis zu weitere 6 Punkte erreichen möchten, arbeiten Sie die Ergänzung zur Folge 5 durch (ehemaliger Exkurs "Applets 1"). Ansonsten machen Sie weiter mit der Folge 6, die Sie allerdings nur in der Buchversion finden, oder mit Folge 7, die ich aber noch nicht überarbeitet habe.

Weiter mit Folge 6 - Ein kleiner Roboter

Diese HTML-Seite wurde erstellt von Ulrich Helmich am 6. März 2005 und völlig überarbeitet am 18. September 2006.

Sie sind Besucher Nr. seit dem Erreichen der 10-Millionen-Marke am 21.01.2010