Java GUI Entwicklung mit Swing

Transcrição

Java GUI Entwicklung mit Swing
Java GUI Entwicklung mit Swing
Seminarunterlage
Version: 5.03
Copyright ORDIX AG
Version 5.03 vom
13. Februar 2014
Dieses Dokument wird durch die ORDIX AG veröffentlicht.
Copyright ORDIX AG. Alle Rechte vorbehalten.
Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der
jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen.
Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der
jeweiligen Unternehmen.
Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der ORDIX AG weitergegeben
oder benutzt werden.
Adressen der ORDIX AG
Die ORDIX AG besitzt folgende Geschäftsstellen
ORDIX AG
Westernmauer 12-16
D-33098 Paderborn
Tel.: (+49) 0 52 51 / 10 63 - 0
Fax.: (+49) 01 80 / 1 67 34 90
ORDIX AG
Kreuzberger Ring 13
D-65205 Wiesbaden
Tel.: (+49) 06 11 / 7 78 40 – 00
Fax.: (+49) 01 80 / 1 67 34 90
ORDIX AG
An der alten Ziegelei 5
D-48157 Münster
Tel.: (+49) 02 51 / 9 24 35 – 00
Fax.: (+49) 01 80 / 1 67 34 90
ORDIX AG
Wikingerstraße 18-20
D-51107 Köln
Tel.: (+49) 02 21 / 8 70 61 – 0
Fax.: (+49) 01 80 / 1 67 34 90
ORDIX AG
Marlene-Dietrich-Str. 5
D-89231 Neu-Ulm
Tel.: (+49) 07 31 / 9 85 88 – 550
Fax.: (+49) 01 80 / 1 67 34 90
Internet: http://www.ordix.de
Email: [email protected]
Seite 2
Java GUI Entwicklung mit Swing
Version: 5.03
Copyright ORDIX AG
Inhaltsverzeichnis
Inhaltsverzeichnis
1
Entstehung von Swing und Unterschiede zum Awt ................................................................ 7
1.1
1.2
1.3
1.4
2
Grundlegende Swing-Container und Komponenten ............................................................. 12
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
2.22
2.23
2.24
2.25
2.26
2.27
2.28
2.29
2.30
2.31
2.32
2.33
2.34
2.35
2.36
2.37
2.38
2.39
2.40
2.41
2.42
2.43
2.44
2.45
2.46
3
Historie der Grafikbibliotheken in Java ............................................................................... 8
Awt - Paket java.awt ............................................................................................................ 9
Swing - Paket javax.swing ............................................................................................... 10
Unterschiede zwischen Swing und Awt ............................................................................ 11
Container und Komponenten ............................................................................................ 13
Beispiel für Container mit Komponenten .......................................................................... 14
Unterteilung der Container ................................................................................................ 15
Das contentPane ........................................................................................................... 16
Die Klasse JFrame ........................................................................................................... 17
JFrame()-Konstruktoren ................................................................................................. 18
setTitle()-Methode ..................................................................................................... 19
Fenster anzeigen .............................................................................................................. 20
pack()- und setSize()-Methoden ............................................................................... 21
setVisible()-Methode ................................................................................................. 23
setDefaultCloseOperation()-Methode ................................................................... 24
Window-EventWindow-Event ............................................................................................ 25
Anwendung schließen ....................................................................................................... 26
processWindowEvent()-Methode ................................................................................ 27
Ein einfaches Fenster ....................................................................................................... 28
Die Klasse JDialog ............................................................................................................ 29
JDialog()-Konstruktoren ............................................................................................... 30
Ein einfacher Dialog .......................................................................................................... 32
Die Klasse JPanel ........................................................................................................... 33
JPanel()-Konstruktoren ................................................................................................. 34
JPanel hinzufügen ........................................................................................................... 35
Komponenten hinzufügen ................................................................................................. 36
Atomare Komponenten ..................................................................................................... 37
Ein grafischer Überblick .................................................................................................... 39
Die Klasse JLabel ........................................................................................................... 40
JLabel()-Konstruktoren ................................................................................................. 41
Inhalt eines JLabel ändern / abfragen ............................................................................... 43
Aussehen eines JLabel ändern / abfragen ....................................................................... 44
Swing-Konstanten zur Beschreibung der Ausrichtung ..................................................... 45
Die Klasse JTextField .................................................................................................. 46
JTextField()-Konstruktoren ......................................................................................... 47
Inhalt eines JTextField ändern / abfragen.................................................................... 48
Einige Methoden eines JTextField ............................................................................... 49
Schaltflächen ..................................................................................................................... 50
Methoden von JComponent/ AbstractButton ............................................................ 51
Methoden der Klasse AbstractButton ......................................................................... 52
Beispiel zu den Methoden ................................................................................................. 54
Die Klasse JButton()und ihre Konstruktoren ................................................................ 56
Einige nützliche Methoden der Klasse JButton() ......................................................... 57
Die Klassen JRadioButton() und JCheckBox() ........................................................ 58
JRadioButton() und JCheckBox()-Konstruktoren .................................................... 59
Die Klasse ButtonGroup() ............................................................................................ 61
Die Klasse JComboBox() ................................................................................................ 62
JComboBox()-Konstruktoren ........................................................................................... 63
Methoden der Klasse JComboBox ................................................................................... 64
Beispiel für eine JComboBox ............................................................................................ 68
Der Layout Manager .................................................................................................................. 69
Version: 5.03
Copyright ORDIX AG
Seite 3
Java GUI Entwicklung mit Swing
Inhaltsverzeichnis
3.1
3.2
3.3
3.4
3.5
3.6
4
Event Handling - Es tut sich was... .......................................................................................... 86
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
5
Einfaches Fenster mit Swing ohne Event Handling .......................................................... 87
Fenster schließen .............................................................................................................. 88
Event-Modell ..................................................................................................................... 89
Events, Listener und Methoden ........................................................................................ 91
Registrieren als Event-Listener ......................................................................................... 93
Interfaces........................................................................................................................... 94
Beispiel Fenster schließen mit einem Interface ................................................................ 95
Adapterklassen.................................................................................................................. 98
Beispiel Fenster schließen mit normaler Adapterklasse ................................................... 99
Beispiel Fenster schließen mit lokaler Adapterklasse .................................................... 101
Beispiel Fenster schließen mit anonymer Adapterklasse ............................................... 102
Implementierung mehrerer Event-Listener ..................................................................... 103
Event-Listener für zwei Buttons - erste Variante............................................................. 104
Event-Listener für zwei Buttons - zweite Variante .......................................................... 105
Threads und Swing-Komponenten ................................................................................. 106
Klasse SwingUtilities ....................................................................................................... 107
Beispiel invokeAndWait(Runnable doRun) ..................................................................... 108
Klasse SwingWorker ....................................................................................................... 111
Zusammenfassung .......................................................................................................... 116
Das Model-View-Controller Entwurfsmuster ........................................................................ 117
5.1
5.2
6
Der Layout-Manager ......................................................................................................... 70
Vor – und Nachteile von Layout-Managern ...................................................................... 71
Layout-Manager zuweisen und abfragen .......................................................................... 72
Das BorderLayout ......................................................................................................... 73
3.4.1 Horizontaler und Vertikaler Abstand .................................................................... 74
3.4.2 Grafik zum BorderLayout ................................................................................. 75
3.4.3 Beispiel zum BorderLayout .............................................................................. 76
Das FlowLayout ............................................................................................................. 77
3.5.1 Ausrichtung im FlowLayout ............................................................................... 78
3.5.2 Grafiken zum FlowLayout ................................................................................. 79
3.5.3 Beispiel zum FlowLayout...................................................................................... 80
Das GridLayout ............................................................................................................. 81
3.6.1 Spalten- und Zeilenanzahl.................................................................................... 83
3.6.2 Grafiken zum GridLayout ................................................................................. 84
3.6.3 Beispiel zum GridLayout .................................................................................. 85
Was ist das Model-View-Controller Entwurfsmuster? ..................................................... 118
Swing Komponenten-Architektur und MVC .................................................................... 121
5.2.1 JComponent ....................................................................................................... 122
5.2.2 View-Controller-Klassen ..................................................................................... 123
5.2.3 Anwendungsbeispiele ........................................................................................ 128
5.2.4 Beobachter und Beobachtete ............................................................................. 133
5.2.5 Austauschbares Look&Feel ............................................................................... 138
Komplexe Swing-Container .................................................................................................... 139
6.1
6.2
6.3
6.4
6.5
6.6
6.7
Überblick ......................................................................................................................... 140
Die Klasse JSplitPane() ............................................................................................ 141
Positionierung in einer JSplitPane() ........................................................................... 142
Einige nützliche Methoden zur JSplitPane ................................................................. 144
Grafik zur JSplitPane() .............................................................................................. 145
Beispiel zur JSplitPane() ........................................................................................... 146
Die Klasse JTabbedPane() .......................................................................................... 147
6.7.1 Hinzufügen neuer „Karteikarten“ ........................................................................ 148
6.7.2 Weitere Methoden zur JTabbedPane() ........................................................... 150
6.7.3 Grafik zur JTabbedPane() .................................................................................. 152
6.7.4 Beispiel zur JTabbedPane() ............................................................................... 153
Seite 4
Java GUI Entwicklung mit Swing
Version: 5.03
Copyright ORDIX AG
Inhaltsverzeichnis
6.8
Die Klasse JTree() ....................................................................................................... 155
6.8.1 Grafik zu JTree() ............................................................................................. 156
6.9 Die Klasse JToolbar() ................................................................................................ 157
6.9.1 JToolBar() –Konstruktoren ............................................................................ 158
6.9.2 Hinzufügen von Elementen zur JToolBar() ................................................... 159
6.9.3 Grafik zur JToolBar() ..................................................................................... 160
6.9.4 Beispiel zur JToolBar() .................................................................................. 161
6.10 Die Klasse JOptionPane() .......................................................................................... 163
6.10.1 showXxxxDialog()-Methoden ............................................................................. 164
6.10.2 Grafik zur JOptionPane().................................................................................... 165
6.10.3 Einige wichtige Parameter.................................................................................. 166
6.10.4 Rückgabewerte einiger Dialoge ......................................................................... 168
6.10.5 Beispiel für die Methode showMessageDialog() .......................................... 169
6.10.6 Beispiel für die Methode showConfirmDialog() .......................................... 170
6.10.7 Beispiel für die Methode showInputDialog() ............................................... 171
6.11 6.27 Die Klasse JFileChooser() ................................................................................ 172
6.11.1 Grafik zu JFileChooser .................................................................................. 173
6.11.2 Einige nützliche Methoden ................................................................................. 174
7
LayoutManger: GridBagLayout .............................................................................................. 175
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
7.12
7.13
8
LayoutManager: GroupLayout ............................................................................................... 191
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
8.12
8.13
8.14
8.15
8.16
8.17
8.18
8.19
9
Das GridBagLayout ......................................................................................................... 176
gridx und gridy ................................................................................................................ 177
gridwidth und gridheight ...................................................................................... 178
fill ................................................................................................................................ 179
ipadx, ipady und insets............................................................................................ 180
anchor ........................................................................................................................... 181
weightx und weighty .................................................................................................. 182
Anlegen eines GridBagConstraints ......................................................................... 183
Setzen der Constraints .................................................................................................... 184
Informationen zu den folgenden Grafiken ....................................................................... 186
Grafiken zum GridBagLayout ...................................................................................... 187
Beispiel zum GridBagLayout (Rahmen)...................................................................... 188
Beispiel Initialisierung der Schaltflächen ......................................................................... 189
GroupLayout.................................................................................................................... 192
Prinzip des GroupLayout .............................................................................................. 193
Beispiel mit drei Komponenten ....................................................................................... 194
LayoutGroups .............................................................................................................. 195
Layout entlang der Achsen ............................................................................................. 196
Beispiel mit vier Komponenten........................................................................................ 197
Erzeugen einer parallelen Gruppe .................................................................................. 199
Ausrichtung innerhalb paralleler Gruppen ...................................................................... 200
Erzeugen einer sequentiellen Gruppe ............................................................................ 201
Komponenten zu einer Gruppe hinzufügen .................................................................... 202
Gruppen zu einer Gruppe hinzufügen ............................................................................. 203
Größe/Größenanpassung der Komponenten ................................................................. 204
Beispiel Größenanpassung ............................................................................................. 205
Lücken(gaps)................................................................................................................... 206
Automatische Lücken konfigurieren ................................................................................ 207
Eigene Lücken erzeugen ................................................................................................ 208
Arten von Lücken ............................................................................................................ 210
linkSize(int axis, Component...components) ................................................................... 211
GUI zur Laufzeit anpassen.............................................................................................. 212
MVC und JTable....................................................................................................................... 215
9.1
9.2
Allgemeines ..................................................................................................................... 216
Schnell und Einfach ........................................................................................................ 218
Version: 5.03
Copyright ORDIX AG
Seite 5
Java GUI Entwicklung mit Swing
Inhaltsverzeichnis
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
10
JTable-Einstellungen .................................................................................................... 220
Tabellenmodell ................................................................................................................ 222
Schritt für Schritt zum eigenen Tabellenmodell .............................................................. 227
Optionale weitere Schritte ............................................................................................... 231
Editieren einzelner Felder ............................................................................................... 234
Änderungen am Renderer ............................................................................................... 235
Änderung des Zellen-Editors........................................................................................... 236
JTree ............................................................................................................................... 237
Look & Feel, Internationalisierung ........................................................................................ 238
10.1 Look&Feel ....................................................................................................................... 239
10.1.1 Beispiel Look&Feel ............................................................................................. 240
10.1.2 Look&Feel setzen ............................................................................................... 241
10.1.3 Beispiel Look&Feel setzen ................................................................................. 242
10.1.4 Parameter für die setLookAndFeel()-Methode ................................................... 243
10.1.5 Wahl des Look&Feel durch den UIManager .................................................... 245
10.1.6 Look&Feel zur Laufzeit ändern .......................................................................... 246
10.1.7 Beispiel Look&Feel zur Laufzeit ändern............................................................. 247
10.2 Internationalisierung (Locale) .......................................................................................... 248
10.2.1 Beispiel Anwendung ohne Internationalisierung ................................................ 249
10.2.2 Beispiel Anwendung mit Internationalisierung ................................................... 250
10.2.3 Schritte zur Internationalisierung ........................................................................ 252
10.2.4 Sprachcodes ...................................................................................................... 255
10.2.5 Landescodes ...................................................................................................... 256
10.2.6 Verfügbare Locale bestimmen ........................................................................... 257
10.2.7 Zahlen................................................................................................................. 258
10.2.8 Beträge ............................................................................................................... 260
10.2.9 Datum ................................................................................................................. 262
10.2.10 Vordefinierte Datumsformate ............................................................................. 264
10.2.11 Zeit...................................................................................................................... 265
10.2.12 Vordefinierte Zeitformate .................................................................................... 267
10.2.13 Datum und Zeit gleichzeitig ................................................................................ 268
10.3 Zusammenfassung .......................................................................................................... 270
Seite 6
Java GUI Entwicklung mit Swing
Version: 5.03
Copyright ORDIX AG

Documentos relacionados