Handbuch der Java-Programmierung - Standard Edition 7

Handbuch der Java-Programmierung - Standard Edition 7

von: Guido Krüger, Heiko Hansen

Addison-Wesley Verlag, 2012

ISBN: 9783863241469

Sprache: Deutsch

1410 Seiten, Download: 10894 KB

 
Format:  EPUB, PDF, auch als Online-Lesen

geeignet für: geeignet für alle DRM-fähigen eReader geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Handbuch der Java-Programmierung - Standard Edition 7



  Handbuch der Java Programmierung, 7.Auflage 1  
     Guido Krüger, Heiko Hansen 4  
     Impressum 5  
  Inhaltsverzeichnis 6  
     Vorwort 28  
     Die Icons in diesem  34  
  Teil I Einleitung 36  
     1 Was ist Java? 38  
        1.1 Historie 38  
        1.2 Eigenschaften von Java 45  
           1.2.1 Sprachmerkmale 45  
           1.2.2 Applets: eine neue Klasse von Programmen 47  
           1.2.3 Grafikprogrammierung 48  
           1.2.4 Umfangreiche Klassenbibliothek 49  
        1.3 Zusammenfassung 50  
     2 Schnelleinstieg 52  
        2.1 Installation des JDK 52  
           2.1.1 Hardware-Voraussetzungen 52  
           2.1.2 Installation 53  
        2.2 Erste Gehversuche 55  
           2.2.1 Quelltext erstellen, ubersetzen und ausfuhren 55  
           2.2.2 Die Beispielprogramme 59  
        2.3 Tipps fur eigene Experimente 60  
           2.3.1 Der Entwicklungszyklus in Kurzform 60  
           2.3.2 Einfache Ausgaben 61  
           2.3.3 Einfache Eingaben 62  
           2.3.4 Formatierung der Quelltexte 63  
           2.3.5 Namenskonventionen 65  
           2.3.6 Aufruf von Java-Programmen unter Windows 65  
           2.3.7 Troubleshooting 67  
        2.4 Zusammenfassung 70  
     3 Integrierte Entwicklungsumgebungen 72  
        3.1 Einleitung 72  
        3.2 Eclipse 73  
           3.2.1 Überblick 73  
           3.2.2 Installation 74  
           3.2.3 Erste Schritte 74  
        3.3 Netbeans IDE 80  
           3.3.1 Überblick 80  
           3.3.2 Installation 81  
           3.3.3 Erste Schritte 82  
        3.4 IntelliJ IDEA 87  
           3.4.1 Überblick 87  
           3.4.2 Installation 87  
           3.4.3 Erste Schritte 87  
        3.5 BlueJ 91  
           3.5.1 Überblick 91  
           3.5.2 Installation 91  
           3.5.3 Erste Schritte 93  
        3.6 Zusammenfassung 97  
     4 Wie geht es weiter? 98  
        4.1 Wie sollte man dieses Buch lesen? 98  
           4.1.1 Zu welchem Typ Leser gehören Sie? 98  
           4.1.2 Was ist der Inhalt der einzelnen Kapitel? 100  
           4.1.3 Wie geht es nun weiter? 102  
        4.2 Weiterfuhrende Informationen 103  
           4.2.1 Die Dokumentation des JDK 103  
           4.2.2 Informationen im Internet 104  
           4.2.3 Die HTML-Ausgabe 106  
           4.2.4 Die im Buch verwendete UML-Notation 110  
        4.3 Zusammenfassung 111  
  Teil II Grundlagen der Sprache 112  
     5 Datentypen 114  
        5.1 Lexikalische Elemente eines Java-Programms 114  
           5.1.1 Eingabezeichen 114  
           5.1.2 Kommentare 115  
           5.1.3 Bezeichner 116  
           5.1.4 Weitere Unterschiede zu C 116  
        5.2 Primitive Datentypen 116  
           5.2.1 Der logische Typ 118  
           5.2.2 Der Zeichentyp 118  
           5.2.3 Die integralen Typen 119  
           5.2.4 Die Fließkommazahlen 120  
        5.3 Variablen 121  
           5.3.1 Grundeigenschaften 121  
           5.3.2 Deklaration von Variablen 122  
           5.3.3 Lebensdauer/Sichtbarkeit 123  
        5.4 Arrays 124  
           5.4.1 Deklaration und Initialisierung 124  
           5.4.2 Zugriff auf Array-Elemente 125  
           5.4.3 Mehrdimensionale Arrays 126  
        5.5 Referenztypen 128  
           5.5.1 Beschreibung 128  
           5.5.2 Speichermanagement 129  
        5.6 Typkonvertierungen 129  
           5.6.1 Standardkonvertierungen 129  
           5.6.2 Vorzeichenlose Bytes 130  
        5.7 Zusammenfassung 133  
     6 Ausdrucke 134  
        6.1 Eigenschaften von Ausdrucken 134  
        6.2 Arithmetische Operatoren 136  
        6.3 Relationale Operatoren 137  
        6.4 Logische Operatoren 138  
        6.5 Bitweise Operatoren 139  
        6.6 Zuweisungsoperatoren 140  
        6.7 Sonstige Operatoren 141  
           6.7.1 Weitere Operatoren fur primitive Typen 141  
           6.7.2 Operatoren fur Objekte 142  
           6.7.3 Welche Operatoren es nicht gibt 146  
        6.8 Operator-Vorrangregeln 146  
        6.9 Zusammenfassung 150  
     7 Anweisungen 152  
        7.1 Elementare Anweisungen 152  
           7.1.1 Die leere Anweisung 152  
           7.1.2 Der Block 153  
           7.1.3 Variablendeklarationen 153  
           7.1.4 Ausdrucksanweisungen 154  
        7.2 Verzweigungen 155  
           7.2.1 Die if-Anweisung 155  
           7.2.2 Die switch-Anweisung 157  
        7.3 Schleifen 158  
           7.3.1 Die while-Schleife 158  
           7.3.2 Die do-Schleife 158  
           7.3.3 Die for-Schleife 159  
        7.4 Sonstige Anweisungen 163  
           7.4.1 Die assert-Anweisung 163  
        7.5 Zusammenfassung 169  
  Teil III Objektorientierte Programmierung 170  
     8 OOP I: Grundlagen 172  
        8.1 Konzepte objektorientierter Programmiersprachen 172  
           8.1.1 Einfuhrung 172  
           8.1.2 Abstraktion 173  
           8.1.3 Kapselung 174  
           8.1.4 Wiederverwendung 174  
           8.1.5 Beziehungen 175  
           8.1.6 Polymorphismus 178  
           8.1.7 Fazit 179  
        8.2 Klassen und Objekte in Java 179  
           8.2.1 Klassen 179  
           8.2.2 Objekte 180  
        8.3 Methoden 181  
           8.3.1 Definition 181  
           8.3.2 Aufruf 182  
           8.3.3 Parameter 183  
           8.3.4 Variable Parameterlisten 184  
           8.3.5 Ruckgabewert 186  
           8.3.6 Überladen von Methoden 186  
           8.3.7 Konstruktoren 187  
           8.3.8 Destruktoren 191  
        8.4 Zusammenfassung 192  
     9 OOP II: Vererbung, Polymorphismus und statische Elemente 194  
        9.1 Vererbung 194  
           9.1.1 Ableiten einer Klasse 195  
           9.1.2 Die Klasse Object 196  
           9.1.3 Überlagern von Methoden 196  
           9.1.4 Vererbung von Konstruktoren 198  
        9.2 Modifier 199  
           9.2.1 Sichtbarkeit 200  
           9.2.2 Die Attribute im Überblick 200  
        9.3 Statische Methoden und Membervariablen 203  
           9.3.1 Klassenvariablen 203  
           9.3.2 Konstanten 205  
           9.3.3 Klassenmethoden 205  
           9.3.4 Statische Initialisierer 207  
        9.4 Abstrakte Klassen und Polymorphismus 207  
           9.4.1 Abstrakte Klassen 207  
           9.4.2 Ein Beispiel fur Polymorphismus 208  
           9.4.3 Polymorphe Methodenaufrufe in Konstruktoren 211  
        9.5 Zusammenfassung 213  
     10 OOP III: Interfaces 214  
        10.1 Grundlagen 214  
           10.1.1 Definition eines Interface 215  
           10.1.2 Implementierung eines Interface 215  
           10.1.3 Verwenden eines Interface 218  
        10.2 Das Interface Comparable 219  
        10.3 Mehrfachimplementierung und Vererbung 222  
           10.3.1 Mehrfachimplementierung 222  
           10.3.2 Vererbung von Interfaces 223  
           10.3.3 Ableiten von Interfaces 223  
        10.4 Weitere Anwendungen von Interfaces 224  
           10.4.1 Konstanten in Interfaces 224  
           10.4.2 Implementierung von Flags 226  
           10.4.3 Nachbildung von Funktionszeigern 227  
        10.5 Interfaces und Hilfsklassen 229  
           10.5.1 Die Default-Implementierung 230  
           10.5.2 Delegation an die Default-Implementierung 231  
           10.5.3 Die leere Implementierung 232  
        10.6 Zusammenfassung 233  
     11 OOP IV: Verschiedenes 234  
        11.1 Lokale und anonyme Klassen 234  
           11.1.1 Grundlagen 234  
           11.1.2 Nichtstatische lokale Klassen 235  
           11.1.3 Anonyme Klassen 238  
           11.1.4 Statische lokale Klassen 239  
        11.2 Wrapper-Klassen 240  
           11.2.1 Vordefinierte Wrapper-Klassen 240  
           11.2.2 Call by Reference 244  
           11.2.3 Autoboxing und Autounboxing 245  
        11.3 Aufzählungstypen 246  
           11.3.1 Grundlagen 246  
           11.3.2 Erweiterung der Aufzählungsklasse 249  
        11.4 Design-Patterns 250  
           11.4.1 Singleton 251  
           11.4.2 Immutable 252  
           11.4.3 Interface 253  
           11.4.4 Factory 254  
           11.4.5 Iterator 261  
           11.4.6 Delegate 264  
           11.4.7 Composite 267  
           11.4.8 Visitor 270  
           11.4.9 Observer 275  
        11.5 Zusammenfassung 279  
  Teil IV Weiterfuhrende Spracheigenschaften 280  
     12 Strings 282  
        12.1 Grundlegende Eigenschaften 282  
        12.2 Methoden der Klasse String 283  
           12.2.1 Konstruktoren 283  
           12.2.2 Zeichenextraktion 284  
           12.2.3 Die Länge der Zeichenkette 285  
           12.2.4 Vergleichen von Zeichenketten 286  
           12.2.5 Suchen in Zeichenketten 287  
           12.2.6 Ersetzen von Zeichenketten 288  
           12.2.7 Zerlegen von Zeichenketten 289  
           12.2.8 Konvertierungsfunktionen 289  
        12.3 Weitere Eigenschaften 290  
           12.3.1 Die Klasse String ist final 290  
           12.3.2 Was ist ein String fur den Compiler? 290  
           12.3.3 String-Objekte sind nicht dynamisch 292  
        12.4 Die Klasse StringBuilder 292  
           12.4.1 Konstruktoren 292  
           12.4.2 Einfugen von Elementen 293  
           12.4.3 Löschen von Elementen 293  
           12.4.4 Verändern von Elementen 293  
           12.4.5 Längeninformationen 294  
           12.4.6 Konvertierung in einen String 294  
        12.5 Das Interface CharSequence 294  
           12.5.1 Parameterubergabe von beliebigen Zeichenketten 294  
        12.6 Ausgabeformatierung 295  
           12.6.1 Grundlagen 295  
           12.6.2 Die Formatangaben 297  
        12.7 Zusammenfassung 300  
     13 Exceptions 302  
        13.1 Grundlagen und Begriffe 302  
        13.2 Behandlung von Exceptions 303  
           13.2.1 Die try-catch-Anweisung 303  
           13.2.2 Das Fehlerobjekt 305  
           13.2.3 Die Fehlerklassen von Java 306  
           13.2.4 Fortfahren nach Fehlern 307  
           13.2.5 Mehr als eine catch-Klausel 308  
           13.2.6 Mehrere catch-Klauseln zusammenfassen 309  
           13.2.7 Exakter Weiterwurf von Exceptions 310  
           13.2.8 Die finally-Klausel 311  
        13.3 Weitergabe von Exceptions 312  
           13.3.1 Die catch-or-throw-Regel 312  
           13.3.2 Weitergabe einer Exception 313  
           13.3.3 Auslösen von Ausnahmen 313  
        13.4 Automatisches Schließen von Ressourcen 315  
        13.5 Zusammenfassung 317  
     14 Strukturierung von Java-Programmen 318  
        14.1 Programmelemente 318  
           14.1.1 Anweisungen 319  
           14.1.2 Blöcke 319  
           14.1.3 Methoden 321  
           14.1.4 Klassen 322  
           14.1.5 Pakete 322  
           14.1.6 Applikationen 322  
           14.1.7 Applets 323  
        14.2 Pakete 323  
           14.2.1 Verwendung von Paketen 323  
           14.2.2 Die Bedeutung der Paketnamen 326  
           14.2.3 Einbinden zusätzlicher Pakete 327  
           14.2.4 Erstellen eigener Pakete 328  
        14.3 Der Entwicklungszyklus 331  
           14.3.1 Schematische Darstellung 331  
           14.3.2 Projektverwaltung 333  
        14.4 Auslieferung von Java-Programmen 334  
           14.4.1 Weitergabe des Bytecodes 334  
           14.4.2 Einbinden von Ressourcendateien 337  
        14.5 Java Web Start 340  
           14.5.1 Einleitung und Funktionsweise 340  
           14.5.2 Erstellen einer WebStart-Applikation 342  
           14.5.3 Das jnlp-API 347  
        14.6 Zusammenfassung 351  
     15 Collections I 352  
        15.1 Grundlagen und Konzepte 352  
        15.2 Die Klasse Vector 353  
           15.2.1 Einfugen von Elementen 353  
           15.2.2 Zugriff auf Elemente 354  
           15.2.3 Der Vektor als Iterator 355  
        15.3 Die Klasse Stack 356  
        15.4 Die Klasse Hashtable 358  
           15.4.1 Einfugen von Elementen 358  
           15.4.2 Zugriff auf Elemente 359  
           15.4.3 Hashtable als Iterator 359  
           15.4.4 Die Klasse Properties 360  
        15.5 Die Klasse BitSet 362  
           15.5.1 Elementweise Operationen 362  
           15.5.2 Mengenorientierte Operationen 362  
        15.6 Zusammenfassung 364  
     16 Collections II 366  
        16.1 Grundlagen und Konzepte 366  
        16.2 Die Collection des Typs List 369  
           16.2.1 Abstrakte Eigenschaften 369  
           16.2.2 Implementierungen 370  
        16.3 Iteratoren 372  
           16.3.1 Das Interface Iterator 372  
           16.3.2 Das Interface ListIterator 374  
        16.4 Die Collection des Typs Set 375  
           16.4.1 Abstrakte Eigenschaften 375  
           16.4.2 Implementierungen 376  
        16.5 Die Collection des Typs Map 377  
           16.5.1 Abstrakte Eigenschaften 377  
           16.5.2 Implementierungen 378  
        16.6 Sortierte Collections 380  
           16.6.1 Comparable und Comparator 380  
           16.6.2 SortedSet und TreeSet 381  
           16.6.3 SortedMap und TreeMap 384  
        16.7 Die Klasse Collections 384  
           16.7.1 Sortieren und Suchen 385  
           16.7.2 Synchronisieren von Collections 386  
           16.7.3 Erzeugen unveränderlicher Collections 387  
        16.8 Typisierte Klassen und generische Collections 387  
           16.8.1 Grundlagen 387  
           16.8.2 Collections mit mehreren Typparametern 390  
           16.8.3 Eine eigene typisierte Listenklasse 391  
           16.8.4 Typkompatibilität 395  
           16.8.5 Sonstiges 398  
        16.9 Zusammenfassung 400  
     17 Utility-Klassen I 402  
        17.1 Die Klasse Random 402  
           17.1.1 Initialisierung des Zufallszahlengenerators 402  
           17.1.2 Erzeugen von Zufallszahlen 403  
        17.2 Die Klassen Date, Calendar und GregorianCalendar 405  
           17.2.1 Konstruktoren 406  
           17.2.2 Abfragen und Setzen von Datumsbestandteilen 406  
           17.2.3 Vergleiche und Datums-/Zeitarithmetik 411  
           17.2.4 Umwandlung zwischen Date und Calendar 413  
        17.3 Die Klasse System 413  
           17.3.1 System-Properties 414  
           17.3.2 in, err und out 416  
           17.3.3 exit 416  
           17.3.4 gc 417  
           17.3.5 currentTimeMillis 417  
           17.3.6 arraycopy 421  
        17.4 Die Klasse RunTime 422  
           17.4.1 Grundlagen 422  
           17.4.2 Interaktion mit dem externen Programm 423  
        17.5 Die Klasse Arrays 427  
        17.6 Zusammenfassung 429  
     18 Utility-Klassen II 430  
        18.1 Reguläre Ausdrucke 430  
           18.1.1 Die Klasse Pattern 431  
           18.1.2 Die Klasse Matcher 431  
           18.1.3 Vergleich einer Zeichenkette mit einem regulären Ausdruck 432  
           18.1.4 Teilen einer Zeichenkette mit einem regulären Ausdruck 433  
        18.2 Die Klasse Math 434  
           18.2.1 Winkelfunktionen 434  
           18.2.2 Minimum und Maximum 434  
           18.2.3 Arithmetik 435  
           18.2.4 Runden und Abschneiden 435  
        18.3 Die Klassen BigInteger und BigDecimal 436  
           18.3.1 Die Klasse BigInteger 436  
           18.3.2 Die Klasse BigDecimal 438  
        18.4 Internationalisierung und Lokalisierung 441  
           18.4.1 Die Klasse Locale 442  
           18.4.2 Zahlen formatieren 444  
           18.4.3 Datum und Uhrzeit formatieren 447  
           18.4.4 Laden von Ressourcen 449  
        18.5 Zusammenfassung 455  
     19 Character-Streams 456  
        19.1 Allgemeine Konzepte 456  
        19.2 Ausgabe-Streams 458  
           19.2.1 Die abstrakte Klasse Writer 458  
           19.2.2 Auswahl des Ausgabegeräts 458  
           19.2.3 Schachteln von Ausgabe-Streams 462  
        19.3 Eingabe-Streams 469  
           19.3.1 Die abstrakte Klasse Reader 469  
           19.3.2 Auswahl des Eingabegeräts 470  
           19.3.3 Schachteln von Eingabe-Streams 473  
        19.4 Zusammenfassung 476  
     20 Byte-Streams 478  
        20.1 Architektur und Vergleich mit Character-Streams 478  
        20.2 Ausgabe-Streams 479  
           20.2.1 Die Basisklasse OutputStream 479  
           20.2.2 Aus OutputStream direkt abgeleitete Klassen 479  
           20.2.3 Aus FilterOutputStream abgeleitete Klassen 481  
        20.3 Eingabe-Streams 486  
           20.3.1 Die Basisklasse InputStream 486  
           20.3.2 Aus InputStream direkt abgeleitete Klassen 487  
           20.3.3 Aus FilterInputStream abgeleitete Klassen 489  
        20.4 Zusammenfassung 494  
     21 Random-Access-I/O 496  
        21.1 Grundlegende Operationen 496  
        21.2 Navigation in der Datei 497  
           21.2.1 Positionierung des Dateizeigers 497  
           21.2.2 Die Länge der Datei 498  
        21.3 Lesezugriffe 499  
        21.4 Schreibzugriffe 501  
        21.5 Zusammenfassung 503  
     22 Datei- und Verzeichnis-Handling 504  
        22.1 Konstruktion eines File-Objekts 504  
        22.2 Zugriff auf Teile des Pfadnamens 505  
        22.3 Informationen uber die Datei 506  
        22.4 Zugriff auf Verzeichniseinträge 507  
           22.4.1 Lesen von Verzeichniseinträgen 507  
           22.4.2 Ändern von Verzeichniseinträgen 511  
        22.5 Temporäre Dateien und Lockdateien 513  
           22.5.1 Temporäre Dateien 513  
           22.5.2 Lockdateien 514  
        22.6 Zusammenfassung 515  
     23 Multithreading 516  
        23.1 Grundlagen und Begriffe 516  
        23.2 Die Klasse Thread 517  
           23.2.1 Erzeugen eines neuen Threads 517  
           23.2.2 Abbrechen eines Threads 519  
           23.2.3 Weitere Methoden 522  
        23.3 Das Interface Runnable 523  
           23.3.1 Implementieren von Runnable 524  
           23.3.2 Multithreading durch Wrapper-Klassen 525  
        23.4 Synchronisation 529  
           23.4.1 Synchronisationsprobleme 529  
           23.4.2 Monitore 532  
           23.4.3 wait und notify 536  
           23.4.4 BlockingQueue 539  
           23.4.5 PipedInputStream und PipedOutputStream 541  
        23.5 Verwalten von Threads 543  
           23.5.1 Priorität und Name 543  
           23.5.2 Thread-Gruppen 544  
        23.6 Zusammenfassung 545  
  Teil V Grafikprogrammierung mit dem AWT 546  
     24 Grafikausgabe 548  
        24.1 Das Abstract Windowing Toolkit 548  
           24.1.1 Grundlegende Eigenschaften 548  
           24.1.2 Von AWT nach Swing 549  
        24.2 Grundlagen der Grafikausgabe 550  
           24.2.1 Anlegen eines Fensters 550  
           24.2.2 Die Methode paint 551  
           24.2.3 Das grafische Koordinatensystem 552  
           24.2.4 Schließen eines Fensters 552  
        24.3 Elementare Grafikroutinen 554  
           24.3.1 Linie 556  
           24.3.2 Rechteck 557  
           24.3.3 Polygon 558  
           24.3.4 Kreis 560  
           24.3.5 Kreisbogen 561  
        24.4 Weiterfuhrende Funktionen 562  
           24.4.1 Linien- oder Fullmodus 562  
           24.4.2 Kopieren und Löschen von Flächen 564  
           24.4.3 Die Clipping-Region 566  
        24.5 Zusammenfassung 568  
     25 Textausgabe 570  
        25.1 Ausgabefunktionen 570  
        25.2 Unterschiedliche Schriftarten 573  
           25.2.1 Font-Objekte 573  
           25.2.2 Standardschriftarten 575  
        25.3 Eigenschaften von Schriftarten 576  
           25.3.1 Font-Informationen 576  
           25.3.2 Font-Metriken 577  
        25.4 Zusammenfassung 581  
     26 Farben 582  
        26.1 Das Java-Farbmodell 582  
        26.2 Erzeugen von Farben 583  
        26.3 Verwenden von Farben 584  
        26.4 Systemfarben 586  
        26.5 Zusammenfassung 589  
     27 Fenster 590  
        27.1 Die verschiedenen Fensterklassen 590  
        27.2 Aufrufen und Schließen eines Fensters 592  
        27.3 Visuelle Eigenschaften 594  
        27.4 Anzeigezustand 596  
        27.5 Fensterelemente 597  
           27.5.1 Der Fenstertitel 598  
           27.5.2 Das Icon des Fensters 598  
           27.5.3 Der Mauscursor 598  
           27.5.4 Die Vorder- und Hintergrundfarbe 599  
           27.5.5 Der Standard-Font 599  
        27.6 Zusammenfassung 602  
     28 Event-Handling 604  
        28.1 Das Event-Handling seit dem JDK 1.1 604  
           28.1.1 Grundlagen 604  
           28.1.2 Ereignistypen 606  
           28.1.3 Ereignisempfänger 607  
           28.1.4 Ereignisquellen 608  
           28.1.5 Adapterklassen 609  
           28.1.6 Zusammenfassung 609  
        28.2 Entwurfsmuster fur den Nachrichtenverkehr 614  
           28.2.1 Variante 1: Implementierung eines EventListener-Interface 616  
           28.2.2 Variante 2: Lokale und anonyme Klassen 618  
           28.2.3 Variante 3: Trennung von GUI- und Anwendungscode 621  
           28.2.4 Variante 4: Überlagern der Event-Handler in den Komponenten 623  
           28.2.5 Ausblick 625  
        28.3 Zusammenfassung 626  
     29 Low-Level-Events 628  
        29.1 Window-Events 628  
        29.2 Component-Events 631  
        29.3 Mouse-Events 634  
        29.4 MouseMotion-Events 638  
        29.5 Focus-Events 641  
        29.6 Key-Events 644  
        29.7 Zusammenfassung 650  
     30 Menus 652  
        30.1 Grundlagen 652  
        30.2 Menuleiste 653  
        30.3 Menus 654  
        30.4 Menueinträge 655  
           30.4.1 Einfache Menueinträge 655  
           30.4.2 CheckboxMenuItem 655  
           30.4.3 Beschleunigertasten 658  
           30.4.4 Untermenus 661  
        30.5 Action-Events 663  
        30.6 Kontextmenus 667  
        30.7 Datenaustausch mit der Zwischenablage 670  
           30.7.1 Überblick 670  
           30.7.2 Kommunikation mit der Zwischenablage 671  
        30.8 Zusammenfassung 674  
     31 GUI-Dialoge 676  
        31.1 Erstellen eines Dialogs 676  
           31.1.1 Anlegen eines Dialogfensters 677  
           31.1.2 Zuordnen eines Layoutmanagers 677  
           31.1.3 Einfugen von Dialogelementen 678  
           31.1.4 Anzeigen des Dialogfensters 678  
        31.2 Die Layoutmanager 680  
           31.2.1 FlowLayout 681  
           31.2.2 GridLayout 682  
           31.2.3 BorderLayout 685  
           31.2.4 GridBagLayout 687  
           31.2.5 NULL-Layout 693  
           31.2.6 Schachteln von Layoutmanagern 694  
        31.3 Modale Dialoge 697  
        31.4 Zusammenfassung 705  
     32 AWT-Dialogelemente 706  
        32.1 Einleitung 706  
        32.2 Rahmenprogramm 707  
        32.3 Label 710  
        32.4 Button 711  
        32.5 Checkbox 711  
        32.6 CheckboxGroup 713  
        32.7 TextField 715  
        32.8 TextArea 719  
        32.9 Choice 720  
        32.10 List 723  
        32.11 Scrollbar 725  
        32.12 ScrollPane 729  
        32.13 Zusammenfassung 735  
     33 Eigene Dialogelemente 736  
        33.1 Die Klasse Canvas 736  
        33.2 Entwicklung einer 7-Segment-Anzeige 737  
           33.2.1 Anforderungen 737  
           33.2.2 Bildschirmanzeige 738  
           33.2.3 Ereignisbehandlung 739  
        33.3 Einbinden der Komponente 744  
        33.4 Zusammenfassung 747  
     34 Bitmaps und Animationen 748  
        34.1 Bitmaps 748  
           34.1.1 Laden und Anzeigen einer Bitmap 748  
           34.1.2 Entwicklung einer eigenen Bitmap-Komponente 752  
        34.2 Animation 754  
           34.2.1 Prinzipielle Vorgehensweise 754  
           34.2.2 Abspielen einer Folge von Bitmaps 758  
           34.2.3 Animation mit Grafikprimitiven 761  
           34.2.4 Reduktion des Bildschirmflackerns 766  
        34.3 Zusammenfassung 776  
     35 Drucken 778  
        35.1 Einleitung 778  
        35.2 Drucken mit dem Java 2D Printing API 779  
           35.2.1 Überblick 779  
           35.2.2 Zusammenspiel der Klassen 779  
           35.2.3 Ausdrucken einer Textdatei 785  
        35.3 Drucken mit dem Java Print Service API 790  
           35.3.1 Überblick 790  
           35.3.2 Ausdrucken einer Textdatei 793  
        35.4 Drucken mit dem Desktop API 794  
        35.5 Zusammenfassung 796  
  Teil VI Grafikprogrammierung mit Swing 798  
     36 Swing: Grundlagen 800  
        36.1 Eigenschaften und Architektur von Swing 800  
           36.1.1 Einleitung 800  
           36.1.2 Eigenschaften von Swing 801  
           36.1.3 Wie geht es weiter? 803  
        36.2 Ein einfuhrendes Beispiel 804  
           36.2.1 Das Beispielprogramm 804  
           36.2.2 Beschreibung des Beispielprogramms 806  
        36.3 Zusammenfassung 812  
     37 Swing: Container und Menus 814  
        37.1 Hauptfenster 814  
           37.1.1 JFrame 814  
           37.1.2 JWindow 818  
           37.1.3 JDialog 821  
           37.1.4 JOptionPane 821  
           37.1.5 JApplet 826  
           37.1.6 JInternalFrame 827  
        37.2 Menus 831  
           37.2.1 Einfache Menus 831  
           37.2.2 Grundlagen von Swing-Menus 831  
           37.2.3 Weitere Möglichkeiten 836  
           37.2.4 Kontextmenus 840  
        37.3 Weitere Swing-Container 843  
           37.3.1 JComponent 843  
           37.3.2 JPanel und JLayeredPane 856  
        37.4 Zusammenfassung 856  
     38 Swing: Komponenten I 858  
        38.1 Label und Textfelder 858  
           38.1.1 JLabel 858  
           38.1.2 JTextField 861  
           38.1.3 JFormattedTextField 864  
           38.1.4 JPasswordField 864  
           38.1.5 JTextArea 864  
           38.1.6 JSpinner 867  
        38.2 Buttons 869  
           38.2.1 JButton 869  
           38.2.2 JCheckBox 872  
           38.2.3 JRadioButton 874  
        38.3 Listen und Comboboxen 876  
           38.3.1 JList 876  
           38.3.2 JComboBox 880  
        38.4 Quasi-analoge Komponenten 883  
           38.4.1 JScrollBar 883  
           38.4.2 JSlider 886  
           38.4.3 JProgressBar 889  
        38.5 JLayer 892  
        38.6 Zusammenfassung 895  
     39 Swing: Komponenten  896  
        39.1 Spezielle Panels 896  
           39.1.1 JScrollPane 896  
           39.1.2 JSplitPane 900  
           39.1.3 JTabbedPane 904  
        39.2 JTable 907  
           39.2.1 Erzeugen von Tabellen 907  
           39.2.2 Konfiguration der Tabelle 910  
           39.2.3 Selektieren von Elementen 911  
           39.2.4 Zugriff auf den Inhalt der Tabelle 913  
           39.2.5 Das Tabellenmodell 914  
           39.2.6 Das Spaltenmodell 919  
           39.2.7 Rendering der Zellen 921  
           39.2.8 Reaktion auf Ereignisse 925  
        39.3 JTree 925  
           39.3.1 Erzeugen eines Baums 925  
           39.3.2 Selektieren von Knoten 929  
           39.3.3 Öffnen und Schließen der Knoten 932  
           39.3.4 Verändern der Baumstruktur 933  
        39.4 Zusammenfassung 937  
  Teil VII Applets 938  
     40 Applets I 940  
        40.1 Die Architektur eines Applets 940  
           40.1.1 Grundlagen 940  
           40.1.2 Die Klasse java.applet.Applet 941  
           40.1.3 Initialisierung und Endebehandlung 942  
           40.1.4 Weitere Methoden der Klasse Applet 944  
        40.2 Einbinden eines Applets 945  
           40.2.1 Das APPLET-Tag 945  
           40.2.2 Die Parameter des Applet-Tags 946  
           40.2.3 Parameterubergabe an Applets 947  
        40.3 Die Ausgabe von Sound 950  
           40.3.1 Soundausgabe in Applets 950  
           40.3.2 Soundausgabe in Applikationen 952  
        40.4 Animation in Applets 953  
        40.5 Zusammenfassung 959  
     41 Applets II 960  
        41.1 Verweise auf andere Seiten 960  
           41.1.1 Die Klasse URL 960  
           41.1.2 Der Applet-Kontext 962  
           41.1.3 Die Methode showDocument 962  
        41.2 Kommunikation zwischen Applets 966  
        41.3 Umwandlung einer Applikation in ein Applet 969  
           41.3.1 Die Beispiel-Applikation 969  
           41.3.2 Variante 1: Das Programm als Popup-Fenster 971  
           41.3.3 Variante 2: Erstellen eines gleichwertigen Applets 972  
        41.4 Das Java-Plugin 974  
           41.4.1 Funktionsweise 974  
           41.4.2 Verwendung des Plugins 975  
        41.5 Zusammenfassung 977  
  Teil VIII Spezielle APIs 978  
     42 Serialisierung 980  
        42.1 Grundlagen 980  
           42.1.1 Begriffsbestimmung 980  
           42.1.2 Schreiben von Objekten 981  
           42.1.3 Lesen von Objekten 984  
        42.2 Weitere Aspekte der Serialisierung 988  
           42.2.1 Versionierung 988  
           42.2.2 Nichtserialisierte Membervariablen 990  
           42.2.3 Objektreferenzen 991  
           42.2.4 Serialisieren von Collections 995  
        42.3 Anwendungen 995  
           42.3.1 Ein einfacher Objektspeicher 995  
           42.3.2 Kopieren von Objekten 999  
        42.4 Zusammenfassung 1002  
     43 XML-Verarbeitung 1004  
        43.1 XML-Grundlagen 1004  
           43.1.1 Aufbau eines XML-Dokuments 1005  
           43.1.2 Document Type Definition 1007  
           43.1.3 XML Schema Definition 1010  
        43.2 Verarbeiten von XML-Dokumenten mit Java 1013  
           43.2.1 Document Object Model - DOM 1017  
           43.2.2 Simple API for XML - SAX 1022  
           43.2.3 Streaming API for XML - StAX 1027  
           43.2.4 Java Architecture for XML Binding - JAXB 1031  
        43.3 Zusammenfassung 1037  
     44 Datenbankzugriffe mit  1038  
        44.1 Einleitung 1038  
           44.1.1 Grundsätzliche Arbeitsweise 1039  
           44.1.2 Die Architektur von JDBC 1039  
        44.2 Grundlagen von JDBC 1041  
           44.2.1 Öffnen einer Verbindung 1041  
           44.2.2 Erzeugen von Anweisungsobjekten 1043  
           44.2.3 Datenbankabfragen 1044  
           44.2.4 Datenbankänderungen 1046  
           44.2.5 Die Klasse SQLException 1046  
           44.2.6 Die Klasse SQLWarning 1047  
        44.3 Die DirDB-Beispieldatenbank 1047  
           44.3.1 Anforderungen und Design 1047  
           44.3.2 Das Rahmenprogramm 1049  
           44.3.3 Die Verbindung zur Datenbank herstellen 1051  
           44.3.4 Anlegen und Fullen der Tabellen 1053  
           44.3.5 Zählen der Verzeichnisse und Dateien 1056  
           44.3.6 Suchen von Dateien und Verzeichnissen 1057  
           44.3.7 Die zehn größten Dateien 1060  
           44.3.8 Speicherverschwendung durch Clustering 1060  
        44.4 Weiterfuhrende Themen 1061  
           44.4.1 Metadaten 1062  
           44.4.2 Escape-Kommandos 1062  
           44.4.3 Transaktionen 1063  
           44.4.4 JDBC-Datentypen 1064  
           44.4.5 Umgang mit JDBC-Objekten 1064  
           44.4.6 Prepared Statements 1066  
           44.4.7 SQL-Kurzreferenz 1067  
        44.5 Zusammenfassung 1072  
     45 Reflection 1074  
        45.1 Einleitung 1074  
        45.2 Die Klassen Object und Class 1075  
           45.2.1 Die Klasse Object 1075  
           45.2.2 Die Klasse Class 1075  
        45.3 Methoden- und Konstruktorenaufrufe 1078  
           45.3.1 Parameterlose Methoden 1078  
           45.3.2 Parametrisierte Methoden 1084  
           45.3.3 Parametrisierte Konstruktoren 1087  
        45.4 Zugriff auf Membervariablen 1089  
        45.5 Arrays 1092  
           45.5.1 Erzeugen von Arrays 1092  
           45.5.2 Zugriff auf Array-Elemente 1094  
        45.6 Annotationen 1097  
           45.6.1 Grundlagen 1097  
           45.6.2 Eine einfache Annotation 1098  
           45.6.3 Annotationen mit einem Wert 1099  
           45.6.4 Beliebige Schlussel-Wert-Paare in Annotationen 1099  
           45.6.5 Standardwerte fur Attribute 1101  
           45.6.6 Einschränken von Annotationen 1101  
           45.6.7 Auslesen von Annotationen 1103  
        45.7 Zusammenfassung 1104  
     46 Beans 1106  
        46.1 Grundlagen und Begriffe 1106  
        46.2 Entwurf einer einfachen Bean 1108  
           46.2.1 Grundsätzliche Architektur 1108  
           46.2.2 Grafische Darstellung 1109  
           46.2.3 Eigenschaften 1110  
           46.2.4 Implementierung 1111  
           46.2.5 Verwendung der Bean 1114  
        46.3 Die Beanbox 1115  
           46.3.1 Beschreibung und Installation 1115  
           46.3.2 Grundlagen der Bedienung 1116  
           46.3.3 Integration eigener Beans 1118  
           46.3.4 Serialisierte Beans 1120  
        46.4 Bean-Ereignisse 1122  
           46.4.1 Bound Properties 1122  
           46.4.2 Constrained Properties 1127  
           46.4.3 Anwendungsbeispiel 1131  
        46.5 Panel-Beans 1133  
        46.6 BeanInfo-Klassen und Property-Editoren 1138  
           46.6.1 BeanInfo-Klassen 1138  
           46.6.2 Property-Editoren 1141  
        46.7 Zusammenfassung 1148  
     47 Objektorientierte Persistenz 1150  
        47.1 Einleitung 1150  
           47.1.1 Bezug und Installation 1151  
        47.2 Datenbanktabellen und Java-Objekte 1152  
           47.2.1 Eine einfache Java-Klasse fur Tabellen 1152  
           47.2.2 Verknupfen der Java-Klasse mit der Datenbank 1154  
           47.2.3 Konfiguration des Datenbankzugriffs 1157  
        47.3 Verwendung des Java Persistenz API 1160  
           47.3.1 Der EntityManager 1160  
           47.3.2 Transaktionen mit dem EntityManager 1161  
           47.3.3 Anlegen eines neuen Datensatzes 1162  
           47.3.4 Laden eines Datensatzes 1163  
           47.3.5 Löschen eines Datensatzes 1164  
        47.4 Verknupfen von Datensätzen 1165  
           47.4.1 Fortgeschrittenes Modellieren von Datenbanktabellen 1165  
           47.4.2 Modellieren von Relationen 1174  
        47.5 Objektorientierte Datenbankabfragen 1181  
           47.5.1 Suche nach Datensätzen 1181  
           47.5.2 Eigenschaftsbasierte Suche nach Datensätzen 1183  
           47.5.3 Definition von Standardanfragen 1184  
        47.6 Zusammenfassung 1188  
     48 Netzwerkprogrammierung 1190  
        48.1 Grundlagen der Netzwerkprogrammierung 1190  
           48.1.1 Was ist ein Netzwerk? 1190  
           48.1.2 Protokolle 1191  
           48.1.3 Adressierung von Daten 1193  
           48.1.4 Ports und Applikationen 1194  
           48.1.5 Request for Comments 1196  
           48.1.6 Firewalls und Proxys 1197  
        48.2 Client-Sockets 1198  
           48.2.1 Adressierung 1198  
           48.2.2 Aufbau einer einfachen Socket-Verbindung 1200  
           48.2.3 Lesen und Schreiben von Daten 1202  
           48.2.4 Zugriff auf einen Webserver 1205  
        48.3 Server-Sockets 1210  
           48.3.1 Die Klasse ServerSocket 1210  
           48.3.2 Verbindungen zu mehreren Clients 1212  
           48.3.3 Entwicklung eines einfachen Webservers 1214  
        48.4 Daten mit Hilfe der Klasse URL lesen 1221  
        48.5 Zusammenfassung 1223  
     49 Remote Method Invocation 1224  
        49.1 Einleitung 1224  
           49.1.1 Prinzipielle Arbeitsweise 1224  
           49.1.2 Einzelheiten der Kommunikation 1226  
        49.2 Aufbau eines einfachen Uhrzeit-Services 1227  
           49.2.1 Vorgehensweise 1227  
           49.2.2 Das Remote-Interface 1228  
           49.2.3 Implementierung des Remote-Interface 1229  
           49.2.4 Registrieren der Objekte 1231  
           49.2.5 Zugriff auf den Uhrzeit-Service 1234  
           49.2.6 Ausblick 1237  
        49.3 Zusammenfassung 1238  
     50 Sicherheit und Kryptografie 1240  
        50.1 Kryptografische Grundlagen 1240  
           50.1.1 Wichtige Begriffe 1240  
           50.1.2 Einfache Verschlusselungen 1241  
           50.1.3 Message Digests 1244  
           50.1.4 Kryptografische Zufallszahlen 1247  
           50.1.5 Public-Key-Verschlusselung 1249  
           50.1.6 Digitale Unterschriften 1251  
           50.1.7 Zertifikate 1257  
        50.2 Sicherheitsmechanismen in Java 1259  
           50.2.1 Sprachsicherheit 1259  
           50.2.2 Das Sandbox-Konzept 1259  
           50.2.3 Die Policy-Datei 1260  
        50.3 Signierte Applets 1260  
           50.3.1 Ein unerlaubtes Applet 1261  
           50.3.2 Signieren des Applets 1263  
           50.3.3 Ex- und Import von Zertifikaten 1264  
           50.3.4 Anpassen der Policy-Datei 1265  
           50.3.5 Die Klasse SecurityManager 1268  
        50.4 Zusammenfassung 1270  
     51 Sound 1272  
        51.1 Grundlagen und Konzepte 1272  
        51.2 Gesampelter Sound 1274  
           51.2.1 Was ist Sampling? 1274  
           51.2.2 Das Sampling-API 1275  
           51.2.3 Abspielen einer Sample-Datei 1278  
        51.3 Midi 1281  
           51.3.1 Was ist Midi? 1281  
           51.3.2 Grundlegende Klassen des Midi-API 1282  
           51.3.3 Alle meine Entchen - erster Versuch 1282  
           51.3.4 Alle meine Entchen mit dem Sequenzer 1286  
           51.3.5 Zugriff auf Midi-Dateien 1290  
        51.4 Zusammenfassung 1292  
  Teil IX Verschiedenes 1294  
     52 Performance-Tuning 1296  
        52.1 Einleitung 1296  
        52.2 Tuning-Tipps 1298  
           52.2.1 String und StringBuilder 1298  
           52.2.2 Methodenaufrufe 1302  
           52.2.3 Vektoren und Listen 1303  
           52.2.4 Dateizugriffe 1305  
           52.2.5 JDBC 1309  
           52.2.6 Autoboxing und Autounboxing 1310  
           52.2.7 Speicheroptimierung 1311  
        52.3 Einsatz eines Profilers 1312  
           52.3.1 Grundlagen 1312  
           52.3.2 Eine Beispielsitzung mit dem hprof-Profiler 1314  
           52.3.3 Eine Beispielsitzung mit Visual VM 1319  
           52.3.4 Ausblick 1326  
        52.4 Zusammenfassung 1328  
     53 Hilfsprogramme des  1330  
        53.1 javac der Compiler 1330  
           53.1.1 Aufruf 1331  
           53.1.2 Beschreibung 1331  
           53.1.3 Optionen 1331  
        53.2 java der Interpreter 1332  
           53.2.1 Aufruf 1332  
           53.2.2 Beschreibung 1333  
           53.2.3 Optionen 1333  
        53.3 appletviewer der Appletviewer 1334  
           53.3.1 Aufruf 1334  
           53.3.2 Beschreibung 1334  
           53.3.3 Optionen 1335  
        53.4 jdb der Debugger 1335  
           53.4.1 Aufruf 1335  
           53.4.2 Beschreibung 1335  
           53.4.3 Vorbereitungen 1335  
        53.5 javadoc der Dokumentationsgenerator 1337  
           53.5.1 Aufruf 1337  
           53.5.2 Beschreibung 1337  
           53.5.3 Dokumentationskommentare 1337  
           53.5.4 Aufruf von javadoc 1338  
           53.5.5 Optionen 1339  
        53.6 jar das Archivierungswerkzeug 1340  
           53.6.1 Aufruf 1340  
           53.6.2 Beschreibung 1340  
           53.6.3 Kommandos 1340  
           53.6.4 Verwendung einer Manifestdatei 1341  
           53.6.5 Verwendung von jar-Dateien in Applets 1342  
        53.7 javap der Disassembler 1343  
           53.7.1 Aufruf 1343  
           53.7.2 Beschreibung 1343  
           53.7.3 Optionen 1343  
        53.8 serialver Zugriff auf die serialVersionUID 1343  
           53.8.1 Aufruf 1343  
           53.8.2 Beschreibung 1344  
           53.8.3 Optionen 1344  
        53.9 keytool Verwaltung von kryptografischen Schlusseln 1344  
           53.9.1 Aufruf 1344  
           53.9.2 Beschreibung 1344  
        53.10 policytool Bearbeiten von Policy-Dateien 1344  
           53.10.1 Aufruf 1344  
           53.10.2 Optionen 1344  
           53.10.3 Beschreibung 1345  
        53.11 jarsigner Signieren von Archiven 1345  
           53.11.1 Aufruf 1345  
           53.11.2 Beschreibung 1345  
           53.11.3 Optionen 1345  
        53.12 rmic Erzeugen von RMI-Stubs und -Skeletons 1346  
           53.12.1 Aufruf 1346  
           53.12.2 Beschreibung 1346  
           53.12.3 Optionen 1346  
        53.13 rmiregistry der RMI-Namensservice 1346  
           53.13.1 Aufruf 1346  
           53.13.2 Beschreibung 1346  
        53.14 Visual VM Profiling von Java-Anwendungen 1347  
           53.14.1 Aufruf 1347  
           53.14.2 Optionen 1347  
           53.14.3 Beschreibung 1347  
        53.15 xjc der XML Schema Definition Compiler 1347  
           53.15.1 Aufruf 1347  
           53.15.2 Optionen 1347  
           53.15.3 Beschreibung 1348  
        53.16 Zusammenfassung 1348  
  Verzeichnis der Abbildungen 1350  
  Verzeichnis der Listings 1356  
  Verzeichnis der Tabellen 1370  
  Ins Internet: Weitere Infos zum Buch, Downloads, etc. 0  
  Copyright 1410  

Kategorien

Service

Info/Kontakt