|
Bisher haben wir uns nur mit vordefinierten Dialogelementen beschäftigt. Java bietet aber auch die Möglichkeit, Dialogelemente selbst zu definieren und wie eine vordefinierte Komponente zu verwenden. In der Java-Beans-Spezifikation wurden die dazu erforderlichen Techniken beschrieben und die zugrundeliegenden Konzepte definiert. Wir wollen an dieser Stelle allerdings nicht so weit ins Detail gehen, sondern uns lediglich mit den Grundlagen der Entwicklung eigener Dialogelemente auf der Basis der Klasse Canvas befassen, wie sie mit der Klasse SystemColorViewer in Abschnitt 22.11 angedeutet werden.
Ein Canvas ist ein frei definierbares Dialogelement, das in der Grundversion praktisch keinerlei Funktionalität zur Verfügung stellt. Damit ein Canvas etwas Sinnvolles tun kann, muß daraus eine eigene Klasse abgeleitet werden, und in dieser müssen die Methode paint und die Methoden zur Reaktion auf Nachrichten überlagert werden.
public Canvas() |
java.awt.Canvas |
Durch Überlagern der paint-Methode sorgt eine Canvas-Komponente für die Darstellung auf dem Bildschirm:
public void paint(Graphics g) |
java.awt.Canvas |
Die Standardversion von paint zeichnet nur die Ausgabefläche in der aktuellen Hintergrundfarbe. Eine überlagerte Version kann hier natürlich ein beliebig komplexes Darstellungsverhalten realisieren. Der Punkt (0,0) des übergebenen Graphics-Objektes entspricht dabei der linken oberen Ecke des Ausgabebereichs.
Da die Klasse Canvas aus Component abgeleitet ist, bekommt ein Canvas-Objekt alle Ereignisse zugestellt, die auch an eine Komponente gehen. Hierzu zählen Tastatur-, Maus-, Mausbewegungs-, Fokus- und Komponentenereignisse. Die Implementierung der Ereignishandler erfolgt zweckmäßigerweise so, wie es im vierten Entwurfsmuster in Kapitel 18 vorgestellt wurde.
|
Go To Java 2, Addison Wesley, Version 1.0.2, © 1999 Guido Krüger, http://www.gkrueger.com |