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 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:
- columnName-Eigenschaft - String, der die Tabellenspalte darstellt, die den anzuzeigenen Text
enthält; getColumnName(), setColumnName(String)
- dataSet-Eigenschaft - DataSet-Objekt, das die anzuzeigenden Tabellendaten enthält; getDataSet(),
setDataSet(DataSet)
- items-Eigenschaft - String-Array mit Elementen der Liste; getItems(), setItems(String[])
- multiSelect-Eigenschaft - Boolescher Wert, der angibt, ob Mehfachauswahlen möglich sind (true),
oder ob eine Einfachauswahl erzwungen wird (false); isMultiSelect(), setMultipleMode(boolean)
- setItems(DataSet, String)-Methode - setzt den Inhalt der angegebenen Spalte (String) in einem
DataSet auf den aktuellen Inhalt der Liste
- modelContentChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich der Inhalt der
Liste ändert
- selectionChanged-Ereignis -gibt die Methode an, die aufgerufen wird, wenn sich
Einfachauswahl-Elemente ändern
- selectionItemChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich nicht
aufeinanderfolgende Mehrfachauswahlen ändern
- selectionRangeChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich
aufeinanderfolgende Mehrfachauswahlen ändern
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:
- caseSensitive-Eigenschaft - Boolescher Wert, der angibt, ob die Suche die Groß-/Kleinschreibung
berücksichtigt (true) oder nicht (false); isCaseSensitive(), setCaseSensitive(boolean)
- columnName-Eigenschaft - String-Wert, der die Tabellenspalte angibt, die den anzuzeigenden Text
enthält; getColumnName(), setColumnName(String)
- columns-Eigenschaft - Integer-Wert, der angibt, wie viele Zeichen in das Feld eingegeben oder dort
angezeigt werden können; getColumns(), setColumns(int)
- dataSet-Eigenschaft - DataSet-Objekt mit den anzuzeigenden Tabellendaten; getDataSet(),
setDataSet(DataSet)
- echoChar-Eigenschaft - Zeichen, das für maskierte Eingaben auf dem Bildschirm erscheint;
echoCharIsSet() gibt einen Booleschen Wert zurück, getEchoChar() gibt ein Zeichen zurück,
setEchoChar(char)
- text-Eigenschaft - String für den Vorgabetext der Komponente; getText(), setText(String)
- modelContentChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich der Inhalt des
betreffenden DataSet ändert
- textValueChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn die Text-Eigenschaft
geändert oder aktualisiert wird
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:
- columnCount-Eigenschaft - Integer, der die Anzahl der Spalten im DataSet der Tabelle angibt;
getColumnCount().
- columnHeaderVisible-Eigenschaft - Boolescher Wert, der angibt, ob die Spaltenheader angezeigt
werden sollen (true) oder nicht (false)
- dataSet-Eigenschaft - DataSet-Objekt mit den anzuzeigenden Tabellendaten; getDataSet(),
setDataSet(DataSet)
- editInPlace-Eigenschaft - Boolescher Wert, der angibt, ob das Feld read-write (true) oder
read-only (false) ist
- items-Eigenschaft - String-Array mit Elementen der Liste; getItems(), setItems(String[])
- multiSelect-Eigenschaft - Boolescher Wert, der angibt, ob Mehfachauswahlen möglich sind (true),
oder ob eine Einfachauswahl erzwungen wird (false); isMultiSelect(), setMultipleMode(boolean)
- navigateWithDataSet-Eigenschaft - Boolescher Wert, der angibt, ob die aktuelle Zeile im
GridControl synchron mit der aktuellen Zeile im DataSet sein soll und umgekehrt (true), oder ob eine
unabhängige Navigation möglich sein soll (false); isNavigateWithDataSet(),
setNavigateWithDataSet(boolean)
- rowCount-Eigenschaft - Integer-Wert, der die Anzahl der Zeilen im DataSet der Tabelle angibt;
getRowCount().
- rowHeaderVisible-Eigenschaft - Boolescher Wert, der angibt, ob Zeilentitel angezeigt werden sollen
(true) oder nicht (false)
- selectColumn-Eigenschaft - Boolescher Wert, der angibt, ob die Spalte bei der Navigation durch die
Tabelle selektiert ist (true) oder nicht (false); isSelectColumn(), setSelectColumn(boolean).
- selectRow-Eigenschaft - Boolescher Wert, der angibt, ob die Zeile bei der Navigation durch die
Tabelle selektiert ist (true) oder nicht (false); isSelectRow(), setSelectRow(boolean)
- toggleColumnSort(int)-Methode - Integer-Wert, der den Index der Spalte angibt, deren
Sortierreihenfolge umgekehrt werden soll (aufsteigend oder absteigend)
- modelContentChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich der
Listeninhalt ändert
- selectionChanged-Ereignis -gibt die Methode an, die aufgerufen wird, wenn sich
Einfachauswahl-Elemente ändern
- selectionItemChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich nicht
aufeinanderfolgende Mehrfachauswahlen ändern
- selectionRangeChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich
aufeinanderfolgende Mehrfachauswahlen ändern
ImageControl - Bildfeld
Das ImageControl zeigt ein grafisches Bild an, manchmal auch ein Bild-BLOB-Feld mit Tabellendaten.
ImageControl-Komponenten haben die folgenden Elemente:
- columnName-Eigenschaft - String-Wert, der die Tabellenspalte angibt, die den anzuzeigenden Text
enthält; getColumnName(), setColumnName(String)
- dataSet-Eigenschaft - DataSet-Objekt mit den anzuzeigenden Tabellendaten; getDataSet(),
setDataSet(DataSet)
- editInPlace-Eigenschaft - Boolescher Wert, der angibt, ob das Feld read-write (true) oder
read-only (false) ist
- image-Eigenschaft - Bild oder URL-Wert, der ein GIF- oder JPEG-Bild repräsentiert; getImage(),
setImage(Image), setImage(URL)
- imageName-Eigenschaft - String-Wert, der den Dateinamen eines GIF- oder JPEG-Bildes darstellt;
getImageName(); setImageName(String)
- modelContentChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich der
Listeninhalt ändert
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:
- buttonType-Eigenschaft - Integer-Konstante (TEXT_ONLY, IMAGE_ONLY oder
TEXT_AND_IMAGE), die angibt, was auf der Schaltfläche angezeigt wird; getButtonType(),
setButtonType(int).
- dataSet-Eigenschaft - DataSet-Objekt, das die anzuzeigenden Tabellendaten enthält; getDataSet(),
setDataSet(DataSet).
- labels-Eigenschaft - String-Array (Standard: Erstes, Voriges, Nächstes, Letztes, Einfügen, Löschen,
Abbrechen, Ditto, Speichern, Aktualisieren), das den Text angibt, der auf den
Navigator-Schaltflächen erscheint, wenn die buttonType-Eigenschaft auf TextOnly oder
TextAndImage gesetzt ist
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:
- buttonType-Eigenschaft - Integer-Konstante (TEXT_ONLY, IMAGE_ONLY oder
TEXT_AND_IMAGE), die angibt, was auf der Schaltfläche angezeigt wird; getButtonType(),
setButtonType(int).
- dataSet-Eigenschaft - DataSet-Objekt, das die anzuzeigenden Tabellendaten enthält; getDataSet(),
setDataSet(DataSet).
- hgap-Eigenschaft - Integer, der den Abstand (in Pixeln) zwischen horizontalen Schaltflächen angibt;
getHgap(), setHgap(int)
- imageBase-Eigenschaft - String-Wert, der das Pfadpräfix für Schaltflächen-Bilddateinamen angibt;
getImageBase(), setImageBase(String)
- imageNames-Eigenschaft - String-Array, das Schaltflächen-Bilddateinamen angibt;
getImageNames(), setImageNames(String[])
- labels-Eigenschaft - String-Array, das die Schaltflächen-Textwerte angibt (implizit auch die
actionCommands für die Schaltfläche); getLabels(), setLabels(String[])
- layout-Eigenschaft - LayoutManager-Wert für das Layout der ButtonBar;
setLayout(LayoutManager).
- orientation-Eigenschaft - Integer-Konstante: Orientation.HORIZONTAL (Schaltflächen bilden eine
Zeile) oder Orientation.VERTICAL (Schaltflächen bilden eine Spalte); getOrientation(),
setOrientation(int)
- vgap-Eigenschaft - Integer, der den Abstand (in Pixeln) zwischen vertikalen Schaltflächen angibt;
getVgap(), setVgap(int)
- addImageButton(Image, String, String)-Methode - fügt ein neues ButtonControl in die ButtonBar
ein, wozu das angegebene Bild, der Text (String) und der Befehl (String) verwendet werden
- addImageButton(String, String, String)-Methode - fügt ein neues ButtonControl in die ButtonBar
ein, wozu das angegebene Bild (String), der Text (String) und der Befehl (String) verwendet werden
- addSpace()-Methode - fügt den Zwischenräumen in ButtonBar zusätzliche vier Pixel hinzu
- addSpace(int)-Methode - fügt den Zwischenräumen in ButtonBar die im Integer angegebene Anzahl
zusätzlicher Pixel hinzu
- addTextButton(String, String)-Methode - fügt ein neues ButtonControl in ButtonBar ein, wozu der
angegebene Text (String) und Befehl (String) verwendet werden
- setButtonEnabled(String, boolean)-Methode - die Schaltfläche, deren Beschriftung, mit dem
String-Argument übereinstimmt, wird aktiviert, wenn das Boolesche Argument true ist, andernfalls
deaktiviert
- setButtonEnabled(int, boolean)-Methode - die Schaltfläche, deren Index mit dem Integer-Argument
übereinstimmt, wird aktiviert, wenn das Boolesche Argument true ist, andernfalls deaktiviert
- actionPerformed-Ereignis - gibt die Methode an, die aufgerufen wird, wenn eine der Schaltflächen
gedrückt wird.
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:
- drawEdge-Eigenschaft - Boolescher Wert, der angibt, ob der Umriß der Form gezeichnet wird
(true) oder nicht (false); isDrawEdge(), setDrawEdge(boolean)
- edgeColor-Eigenschaft - Color-Objekt zum Zeichnen des Umrisses; getEdgeColor(),
setEdgeColor(Color)
- fill-Eigenschaft - Boolescher Wert, der angibt, ob die Form ausgefüllt (true) oder nicht (false)
dargestellt werden soll; isFill(), setFill(boolean)
- foreground-Eigenschaft - Color-Objekt zum Ausfüllen der Form; setForeground(Color)
- type-Eigenschaft - Integer-Konstante (RECTANGLE, ROUND_RECT, SQUARE,
ROUND_SQUARE, ELLIPSE, CIRCLE, HORZ_LINE, VERT_LINE, POS_SLOPE_LINE,
NEG_SLOPE_LINE), die angibt, welche Form gezeichnet werden soll; getType(), setType(int)
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:
- dataSet-Eigenschaft - DataSet-Objekt, das die anzuzeigenden Tabellendaten enthält; getDataSet(),
setDataSet(DataSet).
- text-Eigenschaft - String für den java.awt.label-Text; getText(), setText(String)
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:
- labels-Eigenschaft - String-Array mit dem Text für die Registerkartenbeschriftung; getLabels(),
setLabels(String[])
- readOnly-Eigenschaft - Boolescher Wert, der angibt, ob die Registerkatenbeschriftungen zur
Laufzeit read-only (true) oder read-write(false) sind; isReadOnly(), setReadOnly(boolean)
- selectedIndex-Eigenschaft - Integer, der den Index der gewählten Registerkarte darstellen (-1, falls
keine selektiert ist); getSelectedIndex(), setSelectedIndex(int)
- tabsOnTop-Eigenschaft - Boolescher Wert, der angibt, ob die Registerkarten oben (true) oder
unten (false) erscheinen; isTabsOnTop(), setTabsOnTop(boolean)
- addTab(String)-Methode - fügt am Ende des Tabsets eine neue Registerkarte ein, mit dem String als
Beschriftung
- getLabel(int)-Methode - gibt einen String mit der Beschriftung der Registerkarte mit dem
angegebenen Index zurück
- removeTab(String) -Methode - entfernt die Registerkarte mit der angegebenen Beschriftung
- renameTab(String, String)-Methode - ersetzt die Beschriftung der Registerkarte durc einen neuen
String
- repaintTab(int)-Methode - zeichnet die Registerkarte mit dem angegebenen Index neu
- setLabel(int, String)-Methode - benennt die Registerkarte mit dem angegebenen Index um
- keyPressed-Ereignis - gibt die Methode an, die aufgerufen wird, wenn eine der Schaltflächen
gedrückt wird. Diese folgenden vier Tastencodes haben in der Komponente eine spezielle Bedeutung:
Home wählt die erste Registerkarte, Links geht zur Registerkarte links, Rechts geht zur Registerkarte
rechts und Ende geht zur letzten Registerkarte
- mouseClicked-Ereignis - gibt die Methode an, die aufgerufen wird, wenn eine der Registerkarten
angeklickt wird
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:
- columnName-Eigenschaft - String, der die Tabellespalte angibt, in der die anzuzeigenden Daten
enthalten sind; getColumnName(), setColumnName(String)
- dataSet-Eigenschaft - DataSet-Objekt mit den anzuzeigenden Tabellendaten; getDataSet(),
setDataSet(DataSet)
- rows-Eigenschaft - Anzahl der Textzeilen, die im Fenster angezeigt werden können; getRows(),
setRows(int)
- textValueChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich der Wert der
Texteigenschaft ändert
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:
- columnName-Eigenschaft - String-Wert, der die Tabellenspalte angibt, die den anzuzeigenden Text
enthält; getColumnName(), setColumnName(String)
- columns-Eigenschaft - Integer-Wert, der angibt, wie viele Zeichen in das Feld eingegeben oder dort
angezeigt werden können; getColumns(), setColumns(int)
- dataSet-Eigenschaft - DataSet-Objekt mit den anzuzeigenden Tabellendaten; getDataSet(),
setDataSet(DataSet)
- echoChar-Eigenschaft - Zeichen, das für maskierte Eingaben auf dem Bildschirm erscheint;
echoCharIsSet() gibt einen Booleschen Wert zurück, getEchoChar() gibt ein Zeichen zurück,
setEchoChar(char)
- editable-Eigenschaft - Boolescher Wert, der angibt, ob das Feld gelesen und geschrieben werden
kann (true), oder ob es nur gelesen werden kann (false); isEditable(),setEditable(boolean)
- text-Eigenschaft - String für den Vorgabetext der Komponente; getText(), setText(String)
- textValueChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn die Text-Eigenschaft
geändert oder aktualisiert wird
- textValueChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich die
Texteigenschaft ändert oder aktualisiert wird
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:
- autoEdit-Eigenschaft - Boolescher Wert, der angibt, ob ein Tastencode für die Beschriftung eines
selektierten Knotens automatisch eine Bearbeitung initiiert (true), oder nicht (false); getAutoEdit(),
setAutoEdit(boolean).
- expandByDefault-Eigenschaft - ein Boolescher Wert, der angibt, ob der Baum erweitert wird (true),
oder ob er zusammengeklappt dargestellt wird (false), wenn er zum ersten Mal angezeigt wird;
getExpandByDefault(), setExpandByDefault(boolean).
- style-Eigenschaft - Integer-Konstante (STYLE_PLUSES, STYLE_ARROWS), die die Darstellung
der Knotengrafik repräsentiert; getStyle(), setStyle(int).
- removeChildren(GraphLocation)-Methode - löscht die Kindknoten des angegebenen Elternknotens
- nodeCollapsed-Ereignis - gibt die Methode an, die aufgerufen wird, wenn ein Knoten
zusammengeklappt wird
- nodeExpanded-Ereignis - gibt die Methode an, die aufgerufen wird, wenn ein Knoten expandiert
wird
- selectionChanged-Ereignis -gibt die Methode an, die aufgerufen wird, wenn sich das selektierte
Element ändert
- selectionItemChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich die
nicht-fortlaufende Mehrfachauswahl ändert
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:
- background-Eigenschaft - Color-Objekt für den Hintergrund des BevelPanel;
setBackground(Color)
- bevelInner-Eigenschaft - Integer-Konstante (FLAT, RAISED, LOWERED), die den Stil der
inneren Kante angibt; getBevelInner(), setBevelInner(int)
- bevelOuter-Eigenschaft - Integer-Konstante (FLAT, RAISED, LOWERED), die den Stil der
äußeren Kante angibt; getBevelOuter(), setBevelOuter(int)
- layout-Eigenschaft - LayoutManager, der die Anordnung der Komponenten im Container festlegt;
setLayout(LayoutManager)
- margins-Eigenschaft - Insets-Objekt (Standard 0,0,0,0, für den oberen, linken, unteren und rechten
Rand, angegeben in Pixeln), das die Breite des Rahmens um die verschachtelten Objekte angibt,
wenn die layout-Eigenschaft korrekt angewendet wurde; getMargins(), setMargins(Insets)
- soft-Eigenschaft -Boolescher Wert, der angibt, ob die Kanten weich gezeichnet werden sollen;
isSoft(), setSoft(boolean soft)
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:
- background-Eigenschaft - Color-Objekt für den Hintergrund von GroupBox; setBackground(Color)
- label-Eigenschaft - String-Darstellung des sichtbaren Texts auf dem ButtonControl; getLabel(),
setLabel(String)
SplitPanel
SplitPanel ist ein mehrfeldiger Container mit Trennlinien, die die darin verschachtelten Komponenten
separieren. SplitPanel-Komponenten haben die folgenden Elemente:
- background-Eigenschaft - Color-Objekt für den Hintergrund von SplitPanel; setBackground(Color)
- dividerColor-Eigenschaft - Color-Objekt für die Feldtrennlinien; getDividerColor(),
setDividerColor(Color)
- gap-Eigenschaft - Integer, der den Abstand (in Pixel) zwischen den Feldern angibt; getGap(),
setGap(int)
- actionPerformed-Ereignis - gibt die Methode an, die aufgerufen wird, wenn das Feld angeklickt wird
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:
- background-Eigenschaft - Color-Objekt für den Hintergrund des TabsetPanel;
setBackground(Color)
- labels-Eigenschaft - String-Array mit dem Text für die Registerkartenbeschriftungen; getLabels(),
setLabels(String[])
- itemMargins-Eigenschaft - Insets-Objekt (Standard 1,4,1,4 für oberen, linken, unteren und rechten
Rand, angegeben in Pixeln), das die Breite des Rahmens um die verschachtelten Objekte angibt;
getItemMargins(), setItemMargins(Insets)
- selectedIndex-Eigenschaft - Integer, der die aktuell selektierte Seite angibt (-1, falls keine Seite
selektiert ist); getSelectedIndex(), setSelectedIndex(int)
- addTab(int, String)-Methode - fügt eine Registerkarte an dem angegebenen Index mit der
angegebenen Beschriftung ein
- removeTab(String)-Methode - löscht die Registerkarte mit der angegebenen Beschriftung
- actionPerformed-Ereignis - gibt die Methode an, die aufgerufen wird, wenn das Feld angeklickt wird
- modelContentChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich der Inhalt
eines Feldes ändert
- selectionChanged-Ereignis - gibt die Methode an, die aufgerufen wird, wenn sich die Einfachauswahl
ändert
- selectionItemChanged-Ereignis -gibt die Methode an, die aufgerufen wird, wenn sich die
nicht-fortlaufende Mehrfachauswahl ändert
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.
Die Filer-Komponente zeigt den Dialog zum Öffnen und Speichern von Dateien an. Die Filer-Komponente
hat die folgenden Elemente:
- frame-Eigenschaft - Frame-Objekt, das den Dialog aufnimmt, ausgewählt aus einer
Dropdown-Liste; getFrame(), setFrame(Frame)
- directory-Eigenschaft - String, der das Standardverzeichnis für den Dialog angibt; getDirectory(),
setDirectory(String)
- file-Eigenschaft - String, der die Standard-Datei für den Dialog angibt; getFile(), setFile(String)
- filenameFilter-Eigenschaft - FilenameFilter-Objekt für die Dropdown-Liste mit dem Dateityp;
getFilenameFilter(), setFilenameFilter(FilenameFilter)
- mode-Eigenschaft - Integer-Konstante (LOAD, SAVE) zur Festlegung des Dialogtyps (Datei öffnen
oder Datei speichern); getMode(), setMode(int)
- title-Eigenschaft - String, der den Text der Titelleiste des Dialogs darstellt; getTitle(), setTitle(String)
- show()-Methode - zeigt den Filer-Dialog an
Abbildung 7.8 zeigt den Filer-Dialog.

Abbildung 7.8: Der aufgerufene Öffnen-Dialog
Die ColorChooser-Komponente ist eine Hüll-Komponente, die den Dialog ColorChooserDialog zur
Farbauswahl anzeigt. ColorChooser-Komponenten haben die folgenden Elemente:
- frame-Eigenschaft - Frame-Objekt, das den Dialog aufnimmt, ausgewählt aus einer
Dropdown-Liste; getFrame(), setFrame(Frame)
- result-Eigenschaft - Integer-Konstante (OK, CANCEL), die die im Dialog ausgewählte Schaltfläche
angibt; getResult(), setResult(int)
- title-Eigenschaft - String, der den Text der Titelleiste des Dialogs darstellt; getTitle(), setTitle(String)
- show()-Methode - zeigt den ColorChooser-Dialog an
- value-Eigenschaft - Color-Objekt, das im Dialog aktiv ist (Standard); getValue(), setValue(Color)
- actionPerformed-Ereignis - gibt die Methode an, die aufgerufen wird, wenn der Dialog mit dem
Systembefehl Schließen geschlossen wird
Abbildung 7.9 zeigt den Dialog ColorChooserDialog an.

Abbildung 7.9: Der ColorChooser-Dialog
Die FontChooser-Komponente ist eine Hüll-Komponente, die den FontChooserDialog zur Schriftauswahl
anzeigt. FontChooser-Komponenten haben die folgenden Elemente:
- frame-Eigenschaft - Frame-Objekt, das den Dialog aufnimmt, ausgewählt aus einer
Dropdown-Liste; getFrame(), setFrame(Frame)
- result-Eigenschaft - Integer-Konstante (OK, CANCEL), die die im Dialog ausgewählte Schaltfläche
angibt; getResult(), setResult(int)
- title-Eigenschaft - String, der den Text der Titelleiste des Dialogs darstellt; getTitle(), setTitle(String)
- show()-Methode - zeigt den ColorChooser-Dialog an
- value-Eigenschaft - Color-Objekt, das im Dialog aktiv ist (Standard); getValue(), setValue(Color)
- actionPerformed-Ereignis - gibt die Methode an, die aufgerufen wird, wenn der Dialog mit dem
Systembefehl Schließen geschlossen wird
Abbildung 7.10 zeigt den FontChooserDialog.

Abbildung 7.10: Der FontChooserDialog
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:
- frame-Eigenschaft - Frame-Objekt, das den Dialog aufnimmt, ausgewählt aus einer
Dropdown-Liste; getFrame(), setFrame(Frame)
- buttonSet-Eigenschaft - Integer-Konstante (OK, OK_CANCEL, YES_NO,
YES_NO_CANCEL), die die Standard-Schaltflächen für den Dialog angibt; getButtonSet(),
setButtonSet(int)
- labels-Eigenschaft - String-Array mit den Beschriftungen für die Schaltflächen im Dialog;
getLabels(), setLabels(String[])
- message-Eigenschaft - String-Darstellung des Meldungstexts, der im Dialog angezeigt werden soll;
getMessage(), setMessage(String)
- result-Eigenschaft - Integer-Konstante (OK, CANCEL), die die im Dialog ausgewählte Schaltfläche
angibt; getResult(), setResult(int)
- title-Eigenschaft - String, der den Text der Titelleiste des Dialogs darstellt; getTitle(), setTitle(String)
- show()-Methode - zeigt den ColorChooser-Dialog an
- actionPerformed-Ereignis - gibt die Methode an, die aufgerufen wird, wenn der Dialog mit dem
Systembefehl Schließen geschlossen wird

Abbildung 7.11: Ein Dialogfeld
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
- borland.jbcl.appletwrappers.blink.BlinkWrapper
- borland.jbcl.appletwrappers.barchart.ChartWrapper
- borland.jbcl.appletwrappers.nervoustext.NervousTextWrapper
- borland.jbcl.appletwrappers.spreadsheet.SpreadSheetWrapper
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
- Können Sie die <name>-Eigenschaft einer Komponente zur Laufzeit ändern?
- Welche Komponente bietet eine Dropdown-Auswahlliste? Und welcher AWT-Komponente ähnelt
sie?
- Wie können TabsetControl- und TabsetPanel-Komponenten mit exklusiven Kontrollkästchen
verglichen werden?
- Was bedeutet der Begriff datenbezogen?
- Welche Methode wird genutzt, um einen Dialog anzuzeigen? Wo in Ihrem Code sollte diese Methode
aufgerufen werden?
- Erzeugen Sie eine Benutzeroberfläche, die das Layout des Dateieigenschaften-Dialogs im JBuilder
nachbildet. Berücksichtigen Sie dabei die Ereignisverarbeitung nicht, sondern erstellen Sie einfach das
Layout mit JBCL-Komponenten in einem Frame.
- Erzeugen Sie ein Applet, das zwei Kontrollkästchen-Gruppen anzeigt: eines mit sechs
Kontrollkästchen in zwei Spalten und eines mit drei Optionsfeldern unten im Zeichenbereich des
Applets. Hinweis: Verwenden Sie für die nicht-exklusiven Kontrollkästchen eine GroupBox.
- Lesen Sie die Hilfe-Themen zu den Dialogkomponenten nach.
© 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