Wie jede reguläre Java-Klasse kann auch eine Bean eigene Methoden definieren. Anders als bei Eigenschaften und Ereignissen gibt es keine Einschränkungen für Signaturen von Methoden, so dass man beliebige Namen und Argumente verwenden kann. Wenn man die Methoden öffentlich macht, werden sie als Bestandteil des Interfaces der Bean angesehen.
Ein einfaches Beispiel
Ich habe eine einfache Bean entwickelt, um die obigen Konzepte zu veranschaulichen. Die Bean ist sehr simpel: Sie zählt rückwärts die Sekunden und löst ein Ereignis ActionEvent aus, wenn sie bei Null angelangt ist. Der Countdown wird in der Standardnotation (hh:mm:ss) angezeigt. Er besitzt zwei Eigenschaften:
- count (int) – Die Anzahl der zu zählenden Sekunden. Im Verlauf der Zeit wird der Countdown bis Null zurückgezählt.
- running (boolean) – Gibt an, ob der Countdown noch läuft oder angehalten ist. Der Countdown startet, wenn man diese Eigenschaft auf true setzt, false stoppt den Countdown
Entsprechend der JavaBean-Spezifikation stellt die Bean die Methoden addActionListener und removeActionListener bereit, so dass andere Objekte benachrichtigt werden können, sobald der Countdown abgelaufen ist. Da ich ein ActionEvent-Ereignis verwendet habe, konnte ich den java.awt.AWTEventMulticaster benutzen, um die Listener zu verwalten.
Außerdem stellt die Bean die Methoden start() und stop() zur Verfügung, um den Countdown zu starten und zu stoppen, was dasselbe ist, wie die running-Eigenschaft entsprechend zu setzten. In Listing A findet sich der vollständige Code für die Beispiel-Bean. Dies ist eine einfache Bean, die das Minimum an Code zeigt, der für eine Bean erforderlich ist. Der Code kann als Ausgangsbasis für die Programmierung umfangreicherer Beans dienen.
Sun Microsystems stellt eine Referenz-Implementierung einer Entwicklungsumgebung namens BeanBox bereit, um Beans zu testen. Diese ermöglicht die grafische Erstellung von Formularen, die Beans enthalten, das Setzen von Eigenschaften und die Verbindung von Beans mithilfe von Ereignissen.
Um die BeanBox nutzen zu können, muss die Bean in eine jar-Datei verpackt werden, damit sie in die Entwicklungsumgebung geladen werden kann. Außerdem muss die Bean mit einer Manifest-Datei gepackt werden, die einen Eintrag für jede Bean in der Datei enthält. Jeder Eintrag muss zwei Tags enthalten:
- Name – der Pfad zu der Datei mit der Bean-Klasse innerhalb der jar-Datei
- Java-Bean – ein boolescher Wert, der true sein muss
Hier die Manifest-Datei für die CountDown-Bean.
Nach dem Packen der Bean kann man die jar-Datei in die BeanBox laden und zwei CountDown-Beans auf das Formular ziehen. Beachten Sie, dass CountDown über kein eigenes Icon verfügt, da ich keines bereitgestellt habe. Setzen Sie die Eigenschaft count beider Beans auf einen Wert ungleich Null und beobachten Sie, wie die grafische Darstellung der Beans an die neuen Werte angepasst wird. Verbinden Sie danach die beiden CountDown-Beans, so dass der ActionEvent der einen die Methode start() der anderen aufruft. Setzen sie die running-Eigenschaft der ersten Bean auf true und beobachten Sie, wie der Countdown beginnt. Sobald der Countdown abgeschlossen ist, wird ein ActionEvent ausgelöst, das die start()-Methode der anderen Bean aktiviert, die nun auch mit dem Countdown beginnt. Abbildung A zeigt einen Ausschnitt der BeanBox-Oberfläche.
Eigene Bohnen
JavaBeans verbinden die Leistungsfähigkeit der Plattform-Unabhängigkeit der Programmiersprache Java mit der Software-Komponenten-Technologie. Sobald man die grundlegenden Konzepte von JavaBean verstanden hat, kann man mit der Entwicklung eigener Beans beginnen.
Neueste Kommentare
Noch keine Kommentare zu Komponenten-basierte Anwendungen mit JavaBeans
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.