© APSIS GmbH extern.gif (1249 Byte), Polling, 2008


Übungsaufgaben

zum Kapitel 5.

Kapitel 5.1

Übung 5.1: Ergänzen Sie Ihr Programm aus der Übung 2.18 mit Mutatoraufrufen bemalen für Ihre Kreise mit einer der Werten ROT, GRUEN oder BLAU als Parameter, die von der Klasse Kreis exportiert werden.

Kapitel 5.3.4

Übung 5.2: Erweitern Sie die Implementierung ihrer Klasse ToleranterEimer mit Hilfe der Klasse lehrbuch.Eimer aus der Übung 4.1 durch die Methode inhalt.

Übung 5.3: Die folgende Schnittstelle ist die Erweiterung der Schnittstelle aus der Übung 4.6:

public interface IErweiterterDoppelEimer extends DoppelEimer {
   public Getraenk inhalt() throws LeerException; // Inhalt der beiden Eimer
   public void fuellen(Getraenk getraenk) throws VollException;
}

Implementieren Sie nun diese Schnittstelle. Sie enthält alle Methoden aus DoppelEimer, zusätzlich noch die beiden neuen. Um die alten Methoden nicht aus Ihrer Lösung der Übung 4.6 kopieren zu müssen, ist es am einfachsten, sie zu erben (s. Abbildung 4.6).

Kapitel 5.4.2

Übung 5.4: Finden und untersuchen Sie die Dokumentation aller erwähnten Klassen und Methoden in der Dokumentation Ihres Compilers.

Kapitel 5.4.3

Übung 5.5: Erweitern Sie das Programm (5.6), indem die Audiodatei nicht nur einmal abgespielt wird, sondern jedes Mal, wenn die Methode paint aufgerufen wird. Sie sollen sie hierzu mit Hilfe der Funktion getAudioClip aus der Klasse java.applet.Applet einmal (bei init) laden und mit Hilfe der parameterlosen Methode play aus der Klasse java.applet.AudioClip abspielen (eine Methode mit dem selben Namen ist auch in der Klasse java.applet.Applet enthalten). getAudioClip aus der Klasse java.applet.Applet muss mit zwei Parametern aufgerufen werden: einem URL und einem String – ähnlich wie play im Programm (5.6). Er liefert ein Objekt der Klasse java.applet.AudioClip. Für dieses Objekt kann play parameterlos aufgerufen werden.

Benutzen Sie in Ihrem Programm kein import, damit der Ursprungsort aller Methoden eindeutig sichtbar ist. Untersuchen Sie die Dokumentation aller erwähnten Klassen und Methoden. Verwenden Sie anstelle von geschachtelten Funktionsaufrufen lieber (lokale oder im begründeten Fall globale) Referenzen, um den Überblick zu bewahren und die Typen der Funktionsergebnisse sichtbar werden zu lassen.

Finden Sie alle verwendeten Klassen und Methoden in der Dokumentation der Standardpakete.

Übung 5.6: Kombinieren Sie nun Ihre Fähigkeiten, mit Hilfe von Standardklassen Audiodateien abzuspielen und Grafiken anzuzeigen. Erweitern Sie Ihre Lösung aus der vorherigen Übung, indem Sie sowohl eine Grafik anzeigen wie auch zwei Audiodateien abspielen. Die erste Audiodatei sollten Sie beim start, die Zweite beim stop (d.h. beim Verlassen des Applets) abspielen.

Kapitel 5.5.1

Übung 5.7: Ergänzen Sie Ihr Applet aus der Übung  4.13, indem Sie darin auch Funktionen der verwendeten Klassen aufrufen.

Kapitel 5.5.2

Übung 5.8: Erstellen Sie ein Applet, in dem Sie darin zu verschiedenen Zeitpunkten (init, start, paint, stop, destroy ) unterschiedliche Töne abspielen. Binden Sie das Applet in eine HTML-Seite ein und experimentieren Sie mit einem Browser: Untersuchen Sie, wann welche Methode des Applets aufgerufen wird.

Kapitel 5.6

Übung 5.9: Stellen Sie Ihr Programm aus der Übung  5.7, von awt auf swing um.

Kapitel 5.7.1

Übung 5.10: Setzen Sie in Ihrem Programm aus der Übung  5.9 die Anordnung explizit auf FlowLayout und untersuchen Sie die Anordnung mit unterschiedlichen Fenstergrößen.

Kapitel 5.7.2

Übung 5.11: Setzen Sie in Ihrem Programm aus der Übung  5.9 die Anordnung explizit auf BorderLayout und untersuchen Sie die Anordnung mit unterschiedlichen Fenstergrößen.

Kapitel 5.7.3

Übung 5.12: Setzen Sie in Ihrem Programm aus der Übung  5.9 die Anordnung explizit auf GridLayout und untersuchen Sie die Anordnung mit unterschiedlichen Fenstergrößen.

Kapitel 5.7.4

Übung 5.13: Stellen Sie ein Programm mit mehreren Knöpfen, Panels, Bildern usw. zusammen und testen Sie es mit verschiedenen Anordnungen. Sie können das Aussehen der Oberfläche mit dem Aufruf der Methode

javax.swing.UIManager.setLookAndFeel(String aussehen);

steuern. Im String-Parameter können einige vordefinierte oder vom Internet ladbare Beschreibungen für das Aussehen angegeben werden. Dies ist eine beachtliche Stärke von swing. Einige Beispiele hierfür:

"javax.swing.plaf.metal.MetalLookAndFeel" // Standard „Java-Erscheinungsbild“
"javax.swing.plaf.mac.MacLookAndFeel" // Erscheinungsbild typisch für Mac
"com.sun.java.swing.plaf.motif.MotifLookAndFeel" // Motif
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel" // MS-Windows
UIManager.getCrossPlatformLookAndFeelClassName() // aktuelle Plattform

Übungsaufgaben zum Kapitel 6


© APSIS GmbH extern.gif (1249 Byte), Polling, 2008