22
JBuilder dbSwing - Komponenten JB28 Henry Wolf , SDCTec GmbH

JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

Embed Size (px)

Citation preview

Page 1: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

JBuilderdbSwing - Komponenten

JB28

Henry Wolf , SDCTec GmbH

Page 2: JBuilder dbSwing - 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.

Page 3: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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.

Page 4: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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

Page 5: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

Ü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

Page 6: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

Übersicht dbSwing-Komponenten II- More dbSwing –

- NavigationJdbNavFieldJdbNavListJdbNavComboBoxJdbNavTree

- MonitoreDBEvent-MonitorDBDisposeMonitor

- DialogeDBPasswordPrompterFontChooser

Page 7: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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

Page 8: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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.

Page 9: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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 ); !!!!

Page 10: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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 )

Page 11: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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 )

Page 12: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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); }

Page 13: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

More dbSwing - FontChooser - Dialog -

- Änderung der Schriftfonts für dbSwing-Objekte

if ( fontChooser_jdbTable.showDialog() )

{

jdbTable.setFont (fontChooser_jdbTable.getSelectedFont() );

}

Page 14: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

Swing-Modelle

Datenquelle

Swing-Modelle

Swing-Komponenten

Property dataSet

Property model

Beispiele :DBListModel -> JListDBTableModel -> Jtable

Page 15: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

Swing-DataBinder

Datenquelle

Swing-DataBinder

Swing-Komponenten

Property dataSet

Property z.B. jTextComponent

Page 16: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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

Page 17: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

Editoren- und Renderer-Klassen II- Die Klasse DefaultCellEditor I -

Konstruktoren :

DefaultCellEditor ( JCheckBox checkBox );

DefaultCellEditor ( JComboBox comboBox );

DefaultCellEditor ( JTextField textField );

Page 18: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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);

}

Page 19: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

Editoren- und Renderer-Klassen III- Implementierung eines eigenen CellEditors I -

public class JavaClassEigenerEditor extends JavaClassEditorKlasse implements TableCellEditor,

ActionListener, FocusListener,

KeyListener{....}

Page 20: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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; }

Page 21: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

Editoren- und Renderer-Klassen IV- Implementierung eines eigenen CellRenders I -

public class JavaClassEigenerRenderer extends JavaClassEditorBase implements TableCellRenderer, CustomPaintSite

{

....}

Page 22: JBuilder dbSwing - Komponenten JB28 Henry Wolf, SDCTec GmbH

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); }