Unter einer JavaBean wird ein wiederverwendbarer Softwarebaustein verstanden, der mit Hilfe von Entwicklungswerkzeugen visuell manipuliert werden kann. Das Spektrum möglicher Bausteine reicht dabei von sehr einfachen Oberflächenbausteinen, wie beispielsweise Buttons oder Eingabefeldern, bis hin zu vollständigen Anwendungen.
Auch wenn die visuelle Manipulation von Bausteinen ein zentraler Bestandteil des JavaBeans-Konzeptes ist, ist es nicht erforderlich, daß alle Bausteine auch zur Laufzeit eine grafische Repräsentation besitzen. Viele JavaBeans verfügen über eine grafische Repräsentation, die aber nur zum Zeitpunkt der Anwendungserstellung innerhalb der Entwicklungsumgebung verwendet wird, zur Laufzeit einer daraus erstellten Anwendung hingegen nicht in Erscheinung tritt. Somit ist es möglich, sowohl Oberflächen- als auch Server-Bausteine als JavaBeans zu implementieren.
Die Schnittstelle zum Zugriff auf eine JavaBean umfaßt die von ihr angebotenen öffentlichen ( Java)-Methoden. Diese können natürlich beliebige Aufrufparameter beinhalten. Die öffentlichen Attribute einer Bean können ebenfalls über entsprechende Methoden ausgelesen und manipuliert werden. Eine Bean übermittelt Änderungen ihres Zustandes mit Hilfe von Java Events. Die Benennung der Methoden, Attribute und Events ist an eine strenge Namenskonvention gebunden, um die automatische Integration in generische Entwicklungsumgebung en zu gestatten. Die von einer Bean erzeugten Events können aktuelle Parameterwerte enthalten.
Die Anpassung einzelner Beans an die konkreten Anforderungen einer zu erstellenden Anwendung erfolgt im Rahmen der sogenannten Customization. Dies kann über Veränderung der öffentlichen Attribute einer Bean erfolgen: Für jedes öffentliche Attribut müssen Methoden zum Auslesen und Verändern seines Wertes vorliegen. Diese können - wiederum aufgrund von Namenskonventionen - vom Entwicklungswerkzeug automatisch erkannt werden. Ein Entwicklungswerkzeug kann somit eine Eingabemaske für jeden Baustein generieren, mit deren Hilfe es einem Anwendungsentwickler möglich ist, die gewünschten Konfigurationen vorzunehmen. Alternativ ist es möglich, einen speziellen Customizer gemeinsam mit der Bean auszuliefern, der vom Entwicklungswerkzeug gestartet werden kann und aufwendigere Anpassungen gestattet.
Die Verknüpfung einzelner Beans zu einer lauffähigen Anwendung erfolgt mit Hilfe des Java Event-Mechanismus. Wie bereits erwähnt kann eine Bean jede Änderung ihres Zustandes der Umwelt mit Hilfe eines Java Events mitteilen. Erstellt man nun eine sogenannte Adapterklasse , also eine Klasse, die sich als Event-Listener der Bean registriert und eine beliebige Methode einer anderen Bean aufruft, ist die Verbindung der beiden Beans bereits hergestellt. Die Verwendung von Adapterklasse n ist erforderlich, um den Typ des ausgelösten Events an die aufzurufende Methode anpassen zu können und die in den Events übergebene Information geeignet auf Parameter der aufgerufenen Methode abbilden zu können.
Die Erstellung der Adapterklasse n erfolgt typischerweise mit Hilfe
spezieller Entwicklungsumgebung en. Hierbei handelt es sich entweder
um grafische Entwicklungswerkzeuge oder um spezielle Skriptsprachen.
In Abbildung ist die Verknüpfung zweier JavaBeans mit Hilfe des Werkzeugs Beanbox dargestellt.
Der Anwendungsentwickler wählt aus den angebotenen Events eines
Bausteins (in diesem Fall eines Buttons mit der Aufschrift
Rotate) ein geeignetes Event aus (im Beispiel
mouseClicked, also das Anklicken des Buttons mit der Maus)
und verbindet dieses mit der aufzurufenden Methode des Zielbausteins
(im Beispiel die Methode rotateOnX eines Bausteins zur
dreidimensionalen Darstellung von Molekülen). Die Entwicklungsumgebung
generiert daraufhin eine Adapterklasse wie die in
Abbildung
dargestellte (einen sogenannten Hookup).
Darüber hinaus ist es natürlich ebenfalls möglich, auf die Verwendung einer derartigen Entwicklungsumgebung zu verzichten und Java Beans durch manuelle Implementierung von Adapterklasse n zu lauffähigen Anwendungen zusammenzusetzen.