Folge 11 - Eine Vokabelliste, Teil 2

Schritt 7

Applets

Bisher lief das ganze Projekt als reine BlueJ-Anwendung in einem Konsolenfenster ab. Wir wollen jetzt einen ganz großen Schritt machen und jetzt ein Java-Applet für die Vokabelliste schreiben.

Jetzt erstellen wir eine neue Klasse Trainer als Java-Applet. Betrachten Sie den folgenden Quelltext:

Java-Applets 1

Bereits in der Jahrgangsstufe 11 haben einige von Ihnen den Exkurs über Java-Applets mitgemacht. Wenn nicht, würde ich Ihnen dringend raten, diesen Exkurs zumindest im Schnelldurchgang zu bearbeiten. Die Aufgaben im Exkurs können sie gerne lösen, allerdings können Sie dann die Übungen 11.8 bis 11.10 nicht mitmachen.

4 Der Quelltext des Java-Applets

Die init()-Methode wird ausgeführt, wenn das Applet gestartet wird. Hier sollten alle Initialisierungen untergebracht werden. In unserem Programm wird hier die Vokabelliste voklist initialisiert und mit sechs Vokabeln gefüllt, damit man nicht bei jedem Testlauf mühselig sechs Wortpaare eintippen muss.

Die paint()-Methode wird ausgeführt, wenn das Applet gezeichnet werden soll. Das ist beim ersten Starten des Applets der Fall, aber auch dann, wenn das Browserfenster irgendwie verändert wurde.

Vielleicht haben Sie ja schon einmal mit Delphi gearbeitet. Dort zeichnet man nicht direkt in ein Fenster, sondern in eine Komponente namens "Canvas". Das ist eine Art Zeichenfläche. In Java spielt die Klasse Graphics eine vergleichbare Rolle. Die Zeile

g.drawString("Vokabel-Trainer", 20, 20);

zeichnet zum Beispiel den String "Vokabel-Trainer" auf die Zeichenfläche, und zwar an der Position x = 20, y = 20. Weitere Befehle zum Zeichnen finden Sie in der Referenz "Graphik-Befehle".

Anschließend soll die Vokabelliste angezeigt werden. Dazu wird der Befehl anzeigen() des Objekts voklist aufgerufen. Da alle Strings auf der Zeichenfläche ausgegeben werden müssen, muss man g als Parameter an die anzeigen()-Methode weiterreichen.

Graphik-Befehle


Die Klausurleute schauen sich bitte unbedingt die Seite über Zeiger an, bevor sie hier weitermachen!

Schritt 8

Wir müssen jetzt die anzeigen()-Methode von VokabelListe verändern. Die Vokabeln werden nicht mehr mit dem System.out.println()-Befehl ausgegeben, sondern auf die Zeichenfläche g gemalt:
	public void anzeigen(Graphics g)
	{
	   for (int i=0; i<liste.size(); i++)
	   {
	      Vokabel vok = (Vokabel) liste.get(i);
	      vok.anzeigen(g, 20, 50+20*i);
	   }
	}

Viel Veränderungen sind das nicht, da die Methode anzeigen() das Prinzip der Delegation anwendet: Die Hauptarbeit, nämlich das eigentliche Zeichnen, wird an die Vokabel-Objekte weitergereichet. Dazu muss das Graphics-Objekt g an die anzeigen()-Methode der Klasse Vokabel weitergereicht werden. Außerdem werden in der for-Schleife die y-Koordinaten für die Ausgabe berechnet. Die x-Koordinaten müssen nicht berechnet werden, sie haben den konstanten Wert 20.

Prinzip der Delegation:
Das Applet soll alle Vokabeln anzeigen. Diese Aufgabe wird an die Klasse Vokabelliste delegiert, und zwar an die Methode anzeigen().

Die Methode anzeigen() der Klasse Vokabelliste wiederum delegiert die Aufgabe an die Methode anzeigen() der Klasse Vokabel.

Schritt 9

Wir müssen jetzt die anzeigen()-Methode von Vokabel verändern:
	public void anzeigen(Graphics g, int x, int y)
	{
	   g.drawString(deutsch+" / "+englisch, x,y);  
	}

Jetzt wird die Meldung nicht mehr in die Konsole geschrieben, sondern auf der Zeichenfläche ausgegeben.

Übung 11.5 (2 Punkte)

Bringen Sie das Java-Applet mit der Vokabelliste jetzt zum Laufen.

Im nächsten Schritt wollen wir das Applet mit zwei Textfeldern und einem Button versehen. Die deutschen Begriffe sollen in das erste Textfeld geschrieben werden, die englischen Übersetzungen in das zweite. Wenn man auf den Button klickt, soll die Vokabel dann in die Vokabelliste aufgenommen werden. Anschließend sollen die Vokabeln sortiert und neu angezeigt werden.



und weiter mit Teil 3

Diese HTML-Seite wurde erstellt von Ulrich Helmich am 19. Juni 2005.






IMPRESSUM