Previous Page TOC Index Next Page See Page

Die JavaBeans-Komponentenbibliothek

JBuilder beinhaltet JavaBean-Komponenten, auf die über die Komponentenpalette zugegriffen wird. Jede Palettenseite enthält eine bestimmte Kategorie von JavaBean-Komponenten.


Eine JavaBean, oder auch Bean, ist eine Java-basierte Komponente, die eine Klasse mit Methoden, Eigenschaften und Ereignissen enthält, die ein instantiierbares Objekt definieren.
Neben den Komponenten von JBuilder können Sie auch Komponenten Drittherstellern oder eigene Komponente verwenden. Abbildung 7.1 zeigt die Komponentenpalette im Hauptfenster von JBuilder.

Abbildung 7.1: Die Komponentenpalette

Welche Elemente auf der Palette angezeigt werden, wird durch die aktuell geladene Palette.INI-Datei gesteuert. Durch Verwendung mehrerer .INI-Dateien unter verschiedenen Paletten wählen, abhängig davon, was Sie für Ihr jeweiliges Projekt brauchen.

Für die Konfiguration der Komponentenpalette plazieren Sie die Maus über der Palette und klicken mit der rechten Maustaste. Dadurch wird ein Popup-Menü angezeigt, das den Befehl Eigenschaften enthält. Dieser Befehl zeigt die Paletteneigenschaften an, wo Sie den Seitennamen, den Klassennamen sowie das Icon für eine neu in die Palette aufzunehmende Komponente angeben können. Der Seitenname wird als Vorgabe auf die aktuell selektierte Palettenseite gesetzt. Sie können eine existierende Palette auswählen, Sie können aber auch eine neue Seite anlegen, indem Sei einen Namen eingeben, der sich noch nicht in der Palette befindet. Der Klassenname muß vollständig angegeben werden, und bei dem Icon muß es sich um eine GIF-Datei handeln. Mit Hilfe der Shift+Strg-Tasten können Sie mehrere Komponenten selektieren.

In der Standardkonfiguration zeigt die Komponentenpalette Registerkarten mit AWT-Beans, JBuilder-Beans und Beispiel-JavaBean-Komponenten. Die folgenden Abschnitte gehen auf die einzelnen Seiten der Komponentenpalette ein und beschreiben, welche Möglichkeiten die Komponenten im Visual Designer bieten.


Auf vielen Palettenseiten sehen Sie, daß Komponenten datenbezogen sind, d.h. sie können Felder mit Tabellendaten anzeigen, wenn sie in Kombination mit Datenbanken und Datenzugriffs-Komponenten eingesetzt werden (nur Pro und C/S).


In den folgenden Beschreibungen wird die Methode getXxxx() jeweils dazu genutzt, den Eigenschaftswert zu ermitteln, setXxxx(datentyp) wird verwendet, um den Eigenschaftswret zu setzen. Manchmal unterscheidet sich der Datentyp des Rückgabewerts oder des Arguments von dem Datentyp der Eigenschaft. Auf diese Situation wird dann jeweils hingewiesen.

Steuerelemente

Die Komponenten auf der Steuerelemente-Seite sind im Paket borland.jbcl.control defineirt und sind datenbezogen. Abbildung 7.2 zeigt die Steuerelemente-Seite der Komponentenpalette.

Abbildung 7.2: Die Steuerelemente-Seite der Komponentenpalette

Die Komponenten auf dieser Seite verwenden Sie häufig zum Aufbau Ihrer Java-Programme und die Seite ist beim Laden von JBuilder standardmäßig selektiert. Die folgenden Abschnitte bieten eine kurze Beschreibung der einzelnen Komponenten sowie ihrer wichtigsten Methoden, Eigenschaften und Ereignisse

ButtonControl - Schaltfläche

ButtonControl ist eine Schaltfläche, um Aktionen auszulösen. Auf der Schaltfläche kann eine Graifk oder eine Beschriftung angezeigt werden. ButtonControl-Komponenten haben die folgenden Elemente:

Abbildung 7.3 zeigt Schaltflächen mit verschiedenen Ausrichtungen, wie Sie sie auf Ihre Benutzeroberfläche verwenden könnten.

Abbildung 7.3: ButtonControl-Komponenten

CheckboxControl - Kontrollkästchen

Das ChcekboxControl-Steuerelement ist ein Kontrollkästchen, das dem Anwender ermöglicht, an/aus- oder true/false-Entscheidungen zu treffen. Außerdem kann es verwendet werden, um Boolesche Werte in einem Tabellenfeld zu setzen oder anzuzeigen. CheckboxControl-Komponenten können exklusiv oder nicht-exklusiv sein, so wie AWT-Checkbox-Komponenten. CheckboxControl-Komponente haben die folgenden Elemente:


Kontrollkästchen, die in einem CheckboxPanel-Container angelegt werden, verhalten sich wie Optionsfelder (exklusive Kontrollkästchen)

CheckboxPanel

Das CheckboxPanel ist ein BevelPanel mit m

  • grouped-Eigenschaft - Boolescher Wert, der angibt, ob die Kontrollkästchen gruppiert und exklusiv sind (true) oder nicht (false); isGrouped(), setGrouped(boolean)
  • labels-Eigenschaft - String-Array mit Beschriftungen für Optionsfelder; getLabels(), setLabels(String[]), addLabel(String)
  • orientation-Eigenschaft - Integer-Konstante: Orientation.HORIZONTAL (Kontrollkästchen bilden eine Zeile) oder Orientation.VERTICAL (Kontrollkästchen bilden eine Spalte); getOrientation(), setOrientation(int)
  • selectedIndex-Eigenschaft - Integer, der angibt, welches Optionsfeld der Gruppe selektiert ist; getSelectedIndex(), setSelectedIndex(int)
  • selectedLabel-Eigenschaft - String mit dem Text des selektierten Optionsfelds; getSelectedLabel(), setSelectedLabel(String)

    Beachten Sie, daß Kontrollkästchen in einem CheckboxPanel, die nicht gruppiert sind, dennoch in dem CheckboxPanel enthalten und als eine Einheit verschoben werden können.

    Abbildung 7.4 zeigt zwei gruppierte CheckboxPanel-Komponenten mit unterschiedlichen Ausrichtungen, wie Sie sie auf Ihrer Benutzeroberfläche verwenden können.

    Abbildung 7.4: CheckboxPanel-Komponenten mit gruppierten CheckboxControl-Komponenten in vertikaler und horizontaler Ausrichtung

    ChoiceControl - Auswahllistenfeld

    ChoiceControl ist eine Dropdown-Auswahlliste, auch als Kombinationsfeld bezeichnet, das die Möglichkeiten von TextFieldControl- und ListControl-Komponenten kombiniert. ChoiceControl-Komponenten beinhalten die Elemente von TextFieldControl- und ListControl-Komponentens.

    FieldControl - Bearbeitungsfeld

    FieldControl ist ein typgesteuertes Eingabe- und Bearbeitungsfeld für Tabellendaten. Es hat die folgenden Elemente:

    LabelControl - Beschriftung

    LabelControl zeigt Text an, der nicht selektiert und nicht geändert werden kann. Es hat die folgenden Elemente:

    ListControl - Listenfeld

    ListControl zeigt eine scrollbare Liste mit Textelementen an, die ausgewählt werden können, und mit denen ein Feld mit Tabellendaten angezeigt/aktualisiert werden kann. Sie könne die Auswahl auf ein einzelnes Element begrenzen oder eine Mehrfachauswahl erlauben, indem Sie die multiSelect-Eigenschaft setzen. ListControl-Komponenten haben die folgenden Elemente:

    Wenn die Einträge zu lang sind, werden automatisch horizontale oder vertikale Bildlaufleisten angezeigt.

    LocatorControl - Suche

    LocatorControl selektiert DataSet-Datensätze unter Verwendung einer inkrementellen Suche in der aktuellen Spalte, wenn es sich um eine Zeichen-Spalte handelt. Wenn die Spalte einen anderen Typ hat, ist die Suche nicht inkrementell und beginnt erst dann, wenn der Anwender die Eingabetaste gedrückt hat.


    Durch Kombination des LocatorControl mit einem Steuerelement, das dasselbe DataSet verwendet, etwa einem GridControl, kann die aktuelle Übereinstimmung im GridControl als inkrementelle Suche dargestellt werden. Dabei können auch Meldungen erzeugt werden, es ist also sinnvoll, diese Meldungen in eine StatusBar-Komponente zu schreiben.

    LocatorControl-Komponenten haben die folgenden Elemente:

    GridControl - Tabellensteuerelement

    GridControl zeigt eine Tabelle oder Abfragedaten im Tabellenformat an. Die Anzeigeeigenschaften können spaltenweise vergeben werden, und die Tabelle kann als datenbezogenes Spreadsheet-Steuerelement verwendet werden. GridControl-Komponenten haben die folgenden Elemente:

    ImageControl - Bildfeld

    Das ImageControl zeigt ein grafisches Bild an, manchmal auch ein Bild-BLOB-Feld mit Tabellendaten. ImageControl-Komponenten haben die folgenden Elemente:

    NavigatorControl

    NavigatorControl ist eine Ableitung von ButtonBar, wo Operationen für Datenbanksätze und die Navigation in einer Datenbank realisiert werden. NavigatorControl-Komponenten verwenden die Eigenschaften und Methoden der ButtonBar-Komponenten sowie die folgenden zusätzlichen Elemente:

    ButtonBar - Symbolleiste

    ButtonBar ist ein Container für ButtonControl-Objekte. Jede Schaltfläche kann Text, Grafik oder beides enthalten. ButtonBar-Komponenten haben die folgenden Elemente:

    ShapeControl

    ShapeControl ermöglicht Ihnen, geometrische Formen auf Ihrer Benutzeroberfläche zu plazieren, wie etwa Ellipsen, Linien oder Rechteckte. ShapeControl-Komponenten haben die folgenden Elemente:

    StatusBar - Statusleiste

    StatusBar ist ein BevelPanel, das eine java.awt.label-Komponente enthält, wo Meldungen angezeigt werden können. Außerdem können dort auch Meldungen zum Datenbankstatus angezeigt werden, indem eine Verbindung zu einem DataSet eingerichtet wird. StatusBar-Komponenten haben die folgenden Elemente:

    TabsetControl

    TabsetControl besteht aus horizontalen Registerkarten, die für das Auslösen von Aktionen (beispielsweise, um einen Index für Dialogseiten zu schaffen) sorgen. Diese exklusiven Registerkarten verhalten sich wie Optionsfelder, weil jeweils nur eine selektiert sein kann. TabsetControl-Komponenten haben die folgenden Elemente:

    Wenn nicht alle Registerkarten angezeigt werden können, wird automatisch eine Bildlaufleiste angezeigt (ähnlich in der Komponentenpalette der IDE). Wenn Sie eine integrierte Seiten/Registerkartenlösung wünschen, verwenden Sie statt dessen TabsetPanel.

    TextAreaControl - Textfeld

    TextAreaControl nimmt Eingaben entgegen und zeigt ein scrollbares, mehrzeiliges Textfeld oder ein Text-BLOB-Feld mit Tabellendaten an. TextAreaControl-Komponenten verwenden die Eigenschaften und Methoden der TextFieldControl- und Scrollbar-Komponenten und haben darüber hinaus die folgenden Elemente:

    TextFieldControl

    TextFieldControl zeigt ein einzeiliges, veränderbares Textfeld an. Darüber hinaus können Sie die TextFieldControl-Komponente nutzen, um ein Textfeld zu erzeugen, das die eingegebenen Zeichen verbirgt, um beispielsweise Paßwortfelder zu implementieren; dazu wird die Eigenschaft echoChar gesetzt. Read-only-Felder werden erzeugt, indem die Eigenschaft editable auf false gesetzt wird.


    TextFieldControl-Komponenten beinhalten nur das editierbare Feld. Wenn Sie angeben wollen, was das Feld enthält, brauchen Sie eine LabelControl-Komponente.

    TextFieldControl-Komponenten haben die folgenden Elemente:

    TreeControl

    TreeControl zeigt verwandte Daten in einer Vererbungslinie oder als Hierarchiebaum an. Ein übergeordneter Knoten wird als Elternknoten bezeichnet, eine Knoten auf gleicher Ebene als gleichgeordneter oder Geschwister-Knoten, und ein Knoten auf unterer Ebene als Kindknoten. Einzelne Knoten sind LinkedTreeNode-Objekte du können grafische Icons beinhalten. TreeControl-Komponenten haben die folgenden Elemente:

    Container

    Die Komponenten der Container-Seite sind ebenfalls im Paket borland.jbcl.control definiert und datenbezogen. Abbildung 7.5 zeigt die Container-Seite.

    Abbildung 7.5: Die Container-Seite der Komponentenpalette

    Container sind Komponenten, in denen Sie andere Komponenten ablegen können. Sie können beliebig weit verschachtelt werden. Mit Hilfe von Containern können Sie andere Komponenten der Benutzeroberfläche gruppieren und anordnen und ihr Tiefe verleihen. Außerdem können Sie die verschachtelten Komponenten als eine Einheit verschieben. Die Container auf dieser Komponente erben alle von der java.awt.Panel-Komponente und verwenden deren Funktionalität zusätzlich zu ihrer eigenen.

    BevelPanel

    BevelPanel zeigt ein Rechteck an, dessen Hintergrundfarbe Sie setzen können, mit abgeschrägten Rahmen, in dem Sie andere Komponenten ablegen können, auch andere Container. BevelPanel-Komponenten haben die folgenden Elemente:

    Ein Beispiel für Soft-Kanten erhalten Sie, indem Sie auf eine HTML-Datei im Navigations-Bereich des AppBrowsers klicken. Die Ansicht-Registerkarte des Inhalts-Bereichs hat Soft-Kanten, während die Quelltext-Registerkarte harte Kanten zeigt.

    GroupBox

    Die GroupBox-Komponente ist ein rechteckiger Container mit optionaler Beschriftung, die andere Komponenten visuell anordnet und aufnimmt. GroupBox hat die folgenden Elemente:

    SplitPanel

    SplitPanel ist ein mehrfeldiger Container mit Trennlinien, die die darin verschachtelten Komponenten separieren. SplitPanel-Komponenten haben die folgenden Elemente:

    TabsetPanel

    TabsetPanel ist ein mehrseitiger Container mit Registerkarten, die die Funktionalität eines Panels und eines TabsetControl kombiniert. Jedes auf der Komponente plazierte Panel wird zu einer eigenen Seite, auf der Sie weitere Komponenten plazieren können. Diese Seiten sind exklusiv, d.h. es kann jeweils immer nur eine Seite selektiert sein. TabsetPanel-Komponenten haben die folgenden Elemente:

    AWT

    Die Komponenten auf der AWT-Seite sind im Paket java.awt definiert. Abbildung 7.6 zeigt die AWT-Seite der Komponentenpalette.

    Abbildung 7.6: Die AWT-Seite der Komponentenpalette

    Diese Komponenten sind nicht Teil der JDCL, sondern der JCL (Java-Klassenbibliothek). Weitere Informationen finden Sie in Kapitel 6.

    Dialoge

    Die Komponenten auf der Dialoge-Seite sind im Paket borland.jbcl.control definiert. Die JavaBean-Komponenten auf dieser Seite sind nicht-visuelle Steuerelemente, die durch die show()-Methode aufgerufen werden. Abbildung 7.7 zeigt die Dialoge-Seite der Komponenten.

    Abbildung 7.7: Die Dialoge-Seite der Komponentenpalette

    Wenn diese Komponenten im Visual Designer plaziert werden, erscheinen sie nur im Kontextbaum des Struktur-Bereichs im AppBrowser, nämlich im Ordner Andere. Um einen dieser Dialoge auf Ihrer Benutzeroberfläche anzuzeigen, müssen Sie die show()-Methode im Ereignishandler einer anderen Komponente aufrufen. Um beispielsweise einen Datei-Dialog filer1 anzuzeigen, würden Sie die folgende Codezeile ausführen:

    filer1.show();

    Welchen Ereignishandler Sie verwenden, hängt davon ab, welche Komponente den Dialog aufrufen soll. Wenn der Dialog beispielsweise durch einen Klick auf eine Schaltfläche oder eine Menüauswahl aufgerufen werden soll, plazieren Sie diese Codezeile im actionPerformed-Ereignishandler dieser Komponente. Sie können den Dialog auch von unterschiedlichen Komponenten aufrufen lassen, indem Sie die show()-Methode in mehreren Ereignishandlern aufrufen, oder indem Sie einen gemeinsam genutzten Handler mit der show()-Methode verwenden.

    Neben dem Ereignishandler müssen Sie auch die frame-Eigenschaft setzen, um damit den Eltern-Frame anzugeben, an die die Dialog-Komponente den Fokus zurückgeben soll.

    Filer/Datei öffnen

    Die Filer-Komponente zeigt den Dialog zum Öffnen und Speichern von Dateien an. Die Filer-Komponente hat die folgenden Elemente:

    Abbildung 7.8 zeigt den Filer-Dialog.

    Abbildung 7.8: Der aufgerufene Öffnen-Dialog

    ColorChooser

    Die ColorChooser-Komponente ist eine Hüll-Komponente, die den Dialog ColorChooserDialog zur Farbauswahl anzeigt. ColorChooser-Komponenten haben die folgenden Elemente:

    Abbildung 7.9 zeigt den Dialog ColorChooserDialog an.

    Abbildung 7.9: Der ColorChooser-Dialog

    FontChooser

    Die FontChooser-Komponente ist eine Hüll-Komponente, die den FontChooserDialog zur Schriftauswahl anzeigt. FontChooser-Komponenten haben die folgenden Elemente:

    Abbildung 7.10 zeigt den FontChooserDialog.

    Abbildung 7.10: Der FontChooserDialog

    Message

    Die Message-Komponente ist eine Hüll-Komponente, die den MessageDialog anzeigt, in dem dem Anwender eine Textmeldung präsentiert wird. Message-Komponenten haben die folgenden Elemente:

    Abbildung 7.11: Ein Dialogfeld

    Datenzugriff

    Die Komponenten auf der Datenzugriff-Seite sind im Paket borland.jbcl.dataset definiert. Die JavaBean-Komponenten auf dieser Seite sind Datenbankzugriffs-Steuerelemente. Abbildung 7.12 zeigt diese Komponentenseite.

    Abbildung 7.12: Die Datenzugriff-Seite der Komponentenpalette


    Die Datenzugriff-Seite der Komponentenpalette steht nur in den Versionen Professional und Client/Server zur Verfügung.

    Diese Komponenten werden in Kapitel 14 genauer beschrieben.

    Sun-Applets

    Die Komponenten auf der Sun-Applets-Seite sind in den Unterpaketen borland.jbcl.appletwrappers definiert. Diese Beans zeigen, wie ein Applet in eine Komponente umgewandelt wurde. Abbildung 7.13 zeigt die Sun-Applets-Seite.

    Abbildung 7.13: Die Sun-Applets-Seite der Komponentenpalette

    Die Original-Applets wurden von Sun Microsystems bereitgestellt. Von links nach rechts handelt es sich dabei um

    Weitere Seiten

    Abhängig von Ihrer JBuilder-Edition gibt es noch zwei zusätzliche Seiten, die auf Ihrer Komponentenpalette enthalten sein können: KL-Gruppe und Andere. Die Andere-Seite soll Ihnen Plazt bieten, wo Sie Komponenten von Drittherstellern oder eigene Komponenten ablegen können. Bei der Installation ist sie leer.

    Die Komponenten der KL-Gruppe sind Dritthersteller-Pakete mit JavaBeans, die direkt von KL Group unterstützt werden. Diese Komponente sind in den Unterpaketen jclass.bwt, jclass.class und jclass.chart definiert. Abbildung 7.14 zeigt diese Seite.

    Abbildung 7.14: Die KL-Gruppe-Seite der Komponentenpalette

    Um festzustellen, um welche Komponenten es sich dort jeweils handelt, schieben Sie den Mauscursor über das betreffende Icon und warten einen Augenblick - der Klassenname wird angezeigt, so daß Sie weiterforschen können. Genauere Informationen über diese Klassen finden Sie in der KL-Gruppe-Dokumentation.

    Zusammenfassung

    Heute haben Sie die Bibliothek der Komponenten kennengelernt, die Ihnen JBuilder bereitstellt. Die Komponenten wurden allgemein beschrieben und Sie haben die Elemente spezieller Komponenten der JBCL (JavaBeans Component Library, JavaBeans-Komponentenbibliothek) gesehen. Es gibt jedoch noch sehr viel mehr Informationen über diese Komponenten, als an einem einzigen Tag behandelt werden können! Schlagen Sie zum Beispiel in den Hilfedateien für JBCL nach. Beachten Sie, daß diese Komponenten zum Teil auf Klassen und Schnittstellen der AWT-Hierarchie basieren, und Sie können den Komponentenbaum zurück zu diesen Klassen verfolgen, um dort mehr über die verwendeten Attribute und Verhalten zu erfahren.

    F&A

    F Wenn ich die <name>-Eigenschaft einer Komponente im Inspektor ändere, ändert dann der JBuilder automatisch alle Verweise auf diese Komponente in meinem Code?

    A Ja und Nein. Er ändert die ID der Komponente für den gesamten von der IDE erzeugten Code, was im manuell geschriebenen Code jedoch nicht möglich ist (in Ereignishandler-Methoden beispielsweise). Deshalb ist es sinnvoll, Komponenten umzubenennen, sobald sie sie im Visual Designer plaziert haben.

    F Die Filer-Komponente ist eine sichtbare Komponente, wenn sie aufgerufen wird. Warum wird sie als nicht-sichtbare Komponente bezeichnet?

    A Es handelt sich um eine nicht-visuelle Komponente, weil sie zur Design-Zeit keine grafische Darstellung bietet. Sie wird erst zur Laufzeit dargestellt, wenn der Dialog aufgerufen wird.

    F Ich glaube, ich verwende mehr Eigenschaften als Methoden für meine Komponenten im Code. Ist das in Ordnung?

    A Ja, das ist der Sinn von Komponenten. Eine wohl-durchdachte Komponente macht maximalen Gebrauch von Eigenschaften. Aus diesem Grund werden Sie die Methoden einer Komponente nicht sehr häufig verwenden. Nutzen Sie die Methoden, wenn das erforderlich ist, aber sonst nutzen Sie die Eigenschaften, wenn Sie Ihre Komponenten manipulieren wollen.

    Workshop

    Der Workshop bietet zwei Möglichkeiten, zu überprüfen, was Sie in diesem Kapitel gelernt haben. Der Quiz-Teil stellt Ihnen Fragen, die Ihnen helfen sollen, Ihr Verständnis für den vorgestellten Stoff zu vertiefen. Die Antworten auf die Fragen finden Sie in Anhang A. Der Übungen-Teil ermöglicht Ihnen, Erfahrungen in der Anwendung der Dinge zu sammeln, die Sie hier kennengelernt haben. Versuchen Sie, diese Dinge durchzuarbeiten, bevor Sie mit der nächsten Lektion weitermachen.

    Quiz

    Übungen


    © 1997 SAMS
    Ein Imprint des Markt&Technik Buch- und Software- Verlag GmbH
    Elektronische Fassung des Titels: JBuilder in 14 Tagen, ISBN: 3-87791-895-6

    Previous Page Page Top TOC Index Next Page See Page