jbuilder dbswing - komponenten jb28 henry wolf, sdctec gmbh
TRANSCRIPT
JBuilderdbSwing - Komponenten
JB28
Henry Wolf , SDCTec GmbH
Übersicht
• Überblick zu den dbSwing-Komponenten
• Anwendung der einzelnen Komponenten
• Hinweise & Tips zu den dbSwing-Komponenten- dbSwing-Modelle
- Renderer und Editoren für JdbGridu.a.
Allgemeine Eigenschaften der dbSwing-Komponenten
- Datensensitive SwingkomponentenVerbindung mit Datenquelle über Eigenschaft DataSet
- Feldsensitive Komponenten = 1 Feld der Datenquelle ( Eigenschaft columnName )
- Tabellen-Komponenten representieren alle oderein ausgewählte Anzahl von Feldern einer Datenquelle
- Darstellungseigenschaften werden zum Teil schon in derDatenquelle ( z.B. QueryDataSet ) definiert.
Definition von Darstellungseigenschaften in der Datenquelle
Definition von Darstellungseigenschaften eines Feldes imFeldeditor der Datenquelle
caption = Default – Aliasbezeichner des Feldes ( z.B. Spaltenüberschrift in einer Table )
readOnly = Feld änderbar oder nichtdisplayMask = Darstellungsform ( Format )pickList = Verknüpfung mit einer Auswahlliste
( Ansatz Master / Detail )itemEditor = Editor zur Bearbeitung in einer JdbTableitemPainter = Darstellung in einer JdbTablevisible = Anzeige in JdbTable ja / neinwidth = Standard-Spalten-Breite in einer JdbTable
Übersicht dbSwing-Komponenten I- Navigation / Statusanzeigen
JdbNavToolBar , JdbStatusLabel , More dbSwing- Textfelder und Labels ( feldsensitiv )
JdbTextField , JdbTextArea , JdbTextPane , JdbEditorPane
- Optionsfelder ( feldsensitiv )JdbCheckBox , JdbToggleButton , JdbRadioButton
- Listen und Auswahlfelder ( feldsensitiv )JdbSlider , JdbList , JdbComboBox
- Tabellen und Hierarchische Listen ( feldsensitiv ) TableScrollPane , JdbTable , JdbTree
Übersicht dbSwing-Komponenten II- More dbSwing –
- NavigationJdbNavFieldJdbNavListJdbNavComboBoxJdbNavTree
- MonitoreDBEvent-MonitorDBDisposeMonitor
- DialogeDBPasswordPrompterFontChooser
Komponente jdbStatusLabel
-Anzeige des Aktionsstatus eines DataSet‘s wenn dbSwing-Kom- ponenten den Focus haben
Eigenschaft autoDetect = aktuelles DataSet wird automatisch ermittelt , Vorraussetzung : db-Swing Komponente hat den Focus
Eigenschaft focusedDataSet = DataSet dessen Aktionsstatus angezeigt werden soll , wenn keine dbSwing- Komponente den Focus hat
Textfelder – Eingeben und AnzeigenJdbTextField = einfaches TexteingabefeldJdbTextArea = mehrzeilige Texteingabe
( „MEMO“ )JdbTextPane = Eingabefeld für formatier-
te TexteJdbEditorPane = Anzeige und Eingabefeld
für HTML und RTF
JdbLabel = Anzeige eines Feldinhaltes
JScrollPane wird für mehrzeilige Eingabefelder fürLaufleisten benötigt.
Optionsfelder- JdbCheckBox , JdbToggleButton , JdbRadioButton -
- Dienen vorwiegend der Darstellung von boolschen oder festen „Options“-Feldern
selectedDataValue = Wert bei aktiviertem OptionsfeldunselectDataValue = Wert bei deaktiviertem Optionsfeld
JdbToggleButton & JdbCheckBoxunknownDataValueMode = Verhalten bei nicht zutreffenden Wert
in dem Datenfeld ( Nichts, Wert löschen .. )
Bei RadioButtons mit mehr als 2 Wahl-MöglichkeitenradionButton1.setUnselectedDataValue ( null ); !!!!
Auswahlfelder - JdbComboBox-
Wichtige Methoden :
addItem = hinzufügen eines WertesgetItemAt = Wert an bestimmter Position in der ListegetSelectedIndex = Rückgabe des Listenindex des aktuellen
EintragesgetSelectedItem = Rückgabe des Wertes des aktuellen Eintrages
setSelectedIndex = zu markierenden Eintrag bestimmen ( über den Listenindex)
setSelectedValue = zu markierenden Eintrag bestimmen ( Wert )
Listenfelder - JdbListBox-
Wichtige Methoden :
getSelectedIndex = Rückgabe des Listenindex des aktuellen Eintrages
getSelectedValue = Rückgabe des Wertes des aktuellen EintragesgetItems = Rückgabe der Werte der Liste als String-Array
setSelectedIndex = zu markierenden Eintrag bestimmen ( über den Listenindex)
setSelectedValue = zu markierenden Eintrag bestimmen ( Wert )
More dbSwing - DBPasswortPrompter -
- Passwort-Dialog für Datenbankanmeldung
demoDatabase.setConnection ( ..... );dbpwdPrompt.setDatabase ( demoDatabase );dbpwdPrompt.setFrame ( this );dbpwdPrompt.setUserName ( „“);dbpwdPrompt.setPassword ( „“);dbpwdPrompt.setTitel ( „Anmeldung an der DB“ );boolean cstatus = dbpwdPrompt.showDialog();if ( !cstatus ) // Verbindungsaufbau gescheitert { ... Fehlerbehandlung .... z.B. System.exit(0); }
More dbSwing - FontChooser - Dialog -
- Änderung der Schriftfonts für dbSwing-Objekte
if ( fontChooser_jdbTable.showDialog() )
{
jdbTable.setFont (fontChooser_jdbTable.getSelectedFont() );
}
Swing-Modelle
Datenquelle
Swing-Modelle
Swing-Komponenten
Property dataSet
Property model
Beispiele :DBListModel -> JListDBTableModel -> Jtable
Swing-DataBinder
Datenquelle
Swing-DataBinder
Swing-Komponenten
Property dataSet
Property z.B. jTextComponent
Editoren- und Renderer-Klassen I
Renderer = itemPainter
Ermöglicht individuelle Darstellung der Zelle einerJdbTable
Editoren= itemEditorStellt einen optionalen Swing-CellEditor für einDatenfeld dar
=> Delphi Entwickler InfoPower - Komponenten
Editoren- und Renderer-Klassen II- Die Klasse DefaultCellEditor I -
Konstruktoren :
DefaultCellEditor ( JCheckBox checkBox );
DefaultCellEditor ( JComboBox comboBox );
DefaultCellEditor ( JTextField textField );
Editoren- und Renderer-Klassen II- Die Klasse DefaultCellEditor II -
private void jbInit() throws Exception {
...
DefaultCellEditor comboBox = new DefaultCellEditor
(new JComboBox(new String[] {"Halle/Saale", "Nordhausen", "Dresden", "Hamburg", "Bitterfeld", "Berlin"}));
column2.setColumnName("ORT");
column2.setDataType(com.borland.dx.dataset.Variant.STRING);
column2.setItemEditor(comboBox); /* Cell-Editor -> ComboBox */
column2.setPrecision(100);
column2.setTableName("SIMPLE_LISTE");
column2.setServerColumnName("ORT");
column2.setSqlType(12);
}
Editoren- und Renderer-Klassen III- Implementierung eines eigenen CellEditors I -
public class JavaClassEigenerEditor extends JavaClassEditorKlasse implements TableCellEditor,
ActionListener, FocusListener,
KeyListener{....}
Editoren- und Renderer-Klassen III- Implementierung eines eigenen CellEditors II - public Component getTableCellEditorComponent (JTable table, Object value, boolean isSelected, int row, int column) { if (table.getModel() instanceof DBTableModel) { dbTableModel = (DBTableModel) table.getModel(); intTable = (JdbTable)table; setDefaultFont(intTable.getFont()); } this.setButtonVisible(isSelected); columnIndex = column; rowIndex = row; touched = false; ignoreModelChange = true; acceptKeyReleasedEvent = true; this.setEditorValue( value ); ignoreModelChange = false; return this; }
Editoren- und Renderer-Klassen IV- Implementierung eines eigenen CellRenders I -
public class JavaClassEigenerRenderer extends JavaClassEditorBase implements TableCellRenderer, CustomPaintSite
{
....}
Editoren- und Renderer-Klassen IV- Implementierung eines eigenen CellRenders II
- public Component getTableCellRendererComponent ( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { ... if ( table instanceof JdbTable) { jdbTable = (JdbTable) table; } ... this.setEditorValue(value); return(this); }