xi Inhalt 1 Aufbau und Gliederung * ............................................... 1 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 GUIs – Der Schnelleinstieg *........................................... Zuerst das Fenster, dann der Inhalt * ............................... Die Java Foundation Classes *.......................................... Die Fensterklassen und die Klasse Toolkit * ................... Komposition vs. Vererbung * .......................................... Ereignisverarbeitung: Der Einstieg * ................................. Innere Klassen und Lambda-Ausdrücke * ......................... Druckknöpfe und Textfelder * ......................................... 7 8 16 19 24 30 39 44 3 3.1 3.2 Testen von GUIs ** ......................................................... Aufnehmen von Testskripten ** ...................................... Testgetriebene GUI-Entwicklung *** ................................ 53 53 57 4 GUI-Grafikeditoren ** ..................................................... 61 5 5.1 5.2 5.3 Applets – Java-Anwendungen im Web-Browser *........... »Hello World«als Applet *................................................. Aufbau und Start eines Applets * ..................................... Von einer Java-Anwendung zu einem Java-Applet *........... 65 65 69 74 6 6.1 6.2 6.3 Grafikprogrammierung – eine Einführung * .................. Der Grafikkontext und die Methode paint() * ................. Die Klasse Graphics * ...................................................... Bilder laden und anzeigen * ............................................. 77 77 82 92 7 7.1 7.2 7.3 7.4 7.5 Die Java-Ereignisverarbeitung im Detail * ..................... Ereignistypen * ................................................................ Ereignisbeobachter *........................................................ Adapterklassen * ............................................................. Programmierung der Ereignisverarbeitung * .................... Beispiel: Ein einfacher UML-Editor ** ................................ 99 99 101 103 105 109 8 8.1 8.2 8.2.1 8.2.2 8.2.3 8.2.4 8.3 8.3.1 8.3.2 8.3.3 8.3.4 8.4 8.4.1 8.5 8.6 GUI-Gestaltung – Theorie und Praxis * .......................... Zuerst die Theorie: Software-Ergonomie * ........................ Zuerst die Theorie: Zur Dialoggestaltung *....................... Fenster *.......................................................................... Menüs * ........................................................................... Multifunktionsleisten ** ................................................... Gestaltungs- & Bewertungskriterien für den Dialog *........ Dann die Praxis: Dialog-Programmierung in Java * ........... Die Java-Fensterhierarchie * ............................................. Dialogfenster in Java * ..................................................... Java-Menüs *.................................................................... Multifunktionsleisten in Java ***....................................... Dann die Praxis: Entwicklung der Dialog-Schnittstelle * .... Von der Skizze zum Prototyp * ........................................ Anbindung des Fachkonzepts: Das MVC-Muster * ............ Zuerst die Theorie: Zur E/A-Gestaltung *.......................... 119 120 121 124 128 132 134 137 137 143 159 167 171 171 176 183 xii Inhalt 8.6.1 8.6.2 8.7 8.7.1 8.7.2 8.7.3 8.7.4 8.7.5 8.8 8.9 184 192 201 202 211 219 226 236 245 8.10 Interaktionselemente *..................................................... Gestaltung von Fenstern *................................................ Dann die Praxis: E/A-Programmierung in Java *................ Java-Interaktionselemente * ............................................. Das MVC-Muster am Beispiel einer Java-Tabelle * ............. Layout-Manager *............................................................. Eigene Layout-Manager in Java *** ................................... Das MVC-Muster und die Schnittstelle Action ** .............. Vom OOA-Modell zur Benutzungsoberfläche *** .............. Anbindung der Benutzungsoberfläche an das Fachkonzept ** ................................................................ Fallstudie: Artikel- und Lieferantenverwaltung **.............. 9 9.1 9.2 9.3 Modellgetriebene Entwicklung ** ................................. Modellieren mit dem Enterprise Architect *** ................... Forward Engineering *** .................................................. Reverse Engineering ***.................................................. 263 264 264 266 10 10.1 10.2 10.3 10.4 10.5 Persistenz mit relationalen Datenbanksystemen * ....... Relationale Datenbanksysteme und SQL **....................... Datenbankzugriff per JDBC ** .......................................... Das einfache DAO-Muster ** ............................................ Das komplexe DAO-Muster ** .......................................... JPA: das Java Persistence API *** ...................................... 267 268 272 279 285 293 11 11.1 11.2 11.3 Exkurs: Nebenläufigkeit ** ............................................. Zuerst die Theorie: Nebenläufigkeit durch Threads **...... Dann die Praxis: Threads in Java **.................................. Dann die Praxis: Swing und Nebenläufigkeit ** ................ 301 301 303 308 12 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 12.10 12.11 12.12 12.13 12.14 Betriebswirtschaftlich / administrative Anwendungen ** ............................................................ Eigenschaften betriebswirtschaftlicher Anwendungen *.... AVplus – Pflichtenheft und Glossar * ................................ AVplus – das OOA-Modell ** ............................................ AVplus – Architektur und Komponenten ** ...................... AVplus – GUI **................................................................ AVplus – OOD und OOP des Fachkonzepts (Teil 1) ** ....... AVplus – OOD und OOP des Fachkonzepts (Teil 2) ** ....... AVplus – OOP und Anbindung der GUI (Teil 1) **.............. AVplus – OOP und Anbindung der GUI (Teil 2) **.............. AVplus – Anwendungslogik & Datenhaltung (Teil 1) ** ..... AVplus – Anwendungslogik & Datenhaltung (Teil 2) ** ..... AVplus – OOP der Datenhaltungsschicht ** ...................... AVplus – Berechtigungssteuerung *** .............................. AVplus – Internationalisierung und Lokalisierung *** ....... 319 320 323 328 331 335 344 353 361 375 386 393 396 411 418 13 13.1 13.2 13.3 Technische Anwendungen ** ......................................... Wetterstation – Pflichtenheft, OOA und GUI **.................. Wetterstation – OOD ** .................................................... Wetterstation – GUI ** ...................................................... 429 429 432 434 253 261 Inhalt 13.4 13.5 13.6 13.7 13.8 Wetterstation – Wetterstation – Wetterstation – Wetterstation – Wetterstation – Anwendungslogik ** ................................ XML-Grundlagen ***................................. XML-Daten verarbeiten *** ....................... Datenhaltung **....................................... Nebenläufigkeit ***.................................. 437 445 456 465 468 14 14.1 14.2 14.3 14.4 14.5 Spielen mit (maschineller) Intelligenz ** ....................... Othello – Pflichtenheft und GUI ** .................................... Othello – Das OOA-Modell **............................................ Othello – Das OOD-Modell ** ........................................... Othello – OOP der Othello-Engine *** ............................... Othello – OOP der Othello-GUI ** ..................................... 473 473 476 478 480 487 Glossar ............................................................................................. 497 Literatur ........................................................................................... 507 Sachindex ......................................................................................... 509 xiii