...mehr über Java-Applets


In der neuen Version meines Lehrgangs (2006) beschäftigt sich die Folge 5 mit dem Thema Java-Applets. Die Seite, die Sie jetzt sehen, war die ursprüngliche Fassung dieser Folge, allerdings nicht als reguläre Folge konzipiert, sondern als Exkurs für besonders interessierte Schüler(innen).

Sie haben jetzt die Folge 5 durchgearbeitet, und wenn Sie wollen, können Sie auch noch diese Ergänzung durcharbeiten, um zusätzliche Punkte zu machen.

Schritt 1

Bitte starten Sie BlueJ und legen Sie ein neues Projekt an, das zum Beispiel "Malen" heißen könnte. Erzeugen Sie dann eine neue Klasse mit dem Namen Zeichenbrett. Doppelklicken Sie dann auf die Klasse und entfernen Sie in dem Quelltext alle Kommentare und Methoden außer der paint()-Methode. Das Ganze sollte hinterher so aussehen wie auf Abb. 1.

1 Der zurechtgestutzte Quelltext der Klasse Zeichenbrett enthält nur die paint()-Methode

Wenn Sie ein aufmerksamer Betrachter sind, dürfte Ihnen etwas aufgefallen sein: Die Klasse Zeichenbrett hat keinen Konstruktor! Das liegt daran, dass Zeichenbrett keine normale Klasse ist, sondern ein so genanntes Applet. Wenn Sie wollen, ist ein Applet eine Java-Klasse, deren Objekte in einem Webbrower laufen und die auch von diesem erzeugt und initialisiert werden. Ein spezieller Konstruktor ist dafür nicht notwendig.

Schritt 2

Übersetzen Sie den abgespeckten Quelltext und klicken Sie dann mit der rechten Maustaste auf die Klasse Zeichenbrett.

2 Der Befehl Applet ausführen zeigt das Applet in einem neuen Fenster an

Wenn Sie jetzt den Befehl "Applet ausführen" anwählen, wird das Applet in einem neuen Fenster angezeigt. Vorher erscheint noch ein Dialogfenster (Abb. 3), in dem Sie ein paar Angaben ausfüllen müssen, vor allem, welche Größe das Applet haben soll. Standardmäßig ist hier 500 Pixel Höhe und 500 Pixel Breite eingestellt. Diese Werte können Sie so lassen, klicken Sie einfach auf den Ok-Button.

Ein Applet ist eine Klasse, deren Objekte in einem Webbrowser ausgeführt werden. Ein Konstruktor ist für ein Applet nicht notwendig.

3 Das Dialogfenster für das Applet

Viel ist in dem neuen Fenster allerdings noch nicht zu sehen, da wir die Methode paint() noch nicht weiter verändert haben.

4 Das Applet-Fenster enthält noch nicht viel

Schritt 3

Sie werden nun ein paar Java-Befehle kennenlernen, mit denen Sie einfache Zeichenaufgaben erledigen können. Dazu habe ich eine Übersichts-Seite angelegt, die Sie sich jetzt bitte anschauen.

Wieder da? Gut! Ich hoffe, Sie kennen sich noch mit FOR-Schleifen aus, schließlich haben wir sie im Hamster-Kurs intensiv behandelt.

Graphik-Befehle

for-Schleifen

Übung App1.1 (2 Punkte)

Löschen Sie den Quelltext der paint()-Methode und erzeugen Sie mit Hilfe von zwei FOR-Schleifen und dem drawLine()-Befehl ein Gittermuster, so wie in Abb. 5 dargestellt.

Die erste FOR-Schleife ist für die senkrechten Linien verantwortlich; die zweite FOR-Schleife zeichnet anschließend die waagerechten Linien (oder umgekehrt, wenn Sie wollen).

5 Mit Hilfe von zwei FOR-Schleifen und des drawLine()-Befehls kann man schöne Gittermuster zeichnen

Schritt 4

Erzeugen Sie eine neue Klasse und nennen Sie sie Rechteck. Geben Sie dann folgenden Queltext ein:

6 Der Quelltext der Klasse Rechteck

Hier gibt es etwas Neues zu lernen: Die vier Attribute der Klasse Rechteck heißen x, y, breite und hoehe. Die vier Parameter des Konstruktors haben genau die gleichen Bezeichnungen; auch die Groß- und Kleinschreibung ist identisch. Wie kann nun unterschieden werden zwischen dem Attribut breite und dem Parameter breite?

Wenn Sie genau hinsehen, erkennen Sie das Wort "this", das - durch einen Punkt getrennt - vor dem Attribut steht. Dieses Wort macht genau das, wie sein Name besagt: "this.breite" ist das Attribut breite dieser Klasse. Daher ist es kein Problem eine Zuweisung zu formulieren wie

this.breite = breite;

Die zweite Methode der Klasse Rechteck ist weder eine sondierende noch eine verändernde Methode, sondern zeichnet das Rechteck einfach auf die Zeichenfläche g. Bei g handelt es sich um ein Objekt der Klasse Graphics.

Hier gibt es schon wieder etwas Neues zu lernen: Bei den Attributen gibt es primitive Attribute und Objektattribute. Die Rechteck-Attribute x, y, breite und hoehe sind zum Beispiel primitive Attribute. Objektattribute dagegen sind Objekte anderer Klassen. Bei Parametern kann man genau das gleiche beobachten. Es gibt primitive Parameter wie int x, int y und so weiter, und es gibt Objektparameter wie zum Beispiel Graphics g.

Wie wird diese neue Klasse jetzt von dem Applet eingebunden? Damit kommen wir zu Schritt 5 dieser Folge.

Mit dem Wort "this" wird betont, dass eine Variable ein Attribut dieser Klasse ist.




Auch Objekte können als Parameter an eine Methode übergeben werden. Neben primitiven Parametern gibt es also auch Objektparameter.

Schritt 5

7 So wird die Klasse in das Applet eingebunden

Ergänzen Sie den Quelltext Ihres Applets so wie in Abbildung 7. Den Quelltext der beiden FOR-Schleifen habe ich mit dem Weichzeichner unkenntlich gemacht, damit Sie die Übung App 1.2 nicht zu schnell fertig haben.

Das Applet Zeichenbrett wird zunächst um ein Objektattribut kasten der Klasse Rechteck ergänzt. In einer Methode namens init() wird das Objektattribut dann initialisiert. Dabei werden die vier Werte übergeben, auf die der Konstruktor des Rechtecks besteht. Gezeichnet wird in init() noch nicht, die bleibt der paint()-Methode überlassen. Nachdem das Raster gezeichnet wurde, wird die paint()-Methode des Objektattributs kasten aufgerufen. Dabei wird das Objektattribut g als Parameter übergeben, so dass kasten.paint() auf die gleiche Zeichenfläche malt wie die anderen Befehle von Zeichenbrett.paint().

Übung App1.2 (2 Punkte)

Ergänzen Sie die Klasse Rechteck um eine Methode, die ein rotes Rechteck mit einem schwarzen Rahmen der Breite 4 Pixel zeichnen kann. Oder ein blaues Rechteck mit einem gelben Rahmen der Breite 7. Und so weiter. Der Kopf dieser Methode könnte so aussehen:

public male(Graphics g, Color innen, Color aussen, int rahmenBreite)

8 Ein Beispiel für Übung 7.2

Übung App1.3 (2 Punkte)

a) Finden Sie heraus, was das folgende Java-Applet leistet.

b) Erklären Sie die neuen Programmelemente.

c) Wandeln Sie das Applet so ab, dass noch interessantere Kurven gezeichnet werden.

10 Analyse eines Quelltextes

Kehren Sie nun bitte zu der Seite zurück, von der sie gekommen sind (i.d.R. also zu Folge 5).

Diese HTML-Seite wurde erstellt von Ulrich Helmich am 30. Januar 2005 mit Golive 6.





IMPRESSUM