Java 2 Techniki zaawansowane.pdf

(787 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Java 2. Techniki
zaawansowane
Autorzy: Cay S. Horstmann, Gary Cornell
T³umaczenie: Jaromir Senczyk
ISBN: 83-7197-985-1
Tytu³ orygina³u:
Core Java 2 Volume 2 Advanced Features
Format: B5, stron: 1122
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Ksi¹¿ka ta dostarcza do wiadczonym programistom rozwi¹zañ niezbêdnych do pe³nego
wykorzystania mo¿liwo ci Javy. To praktyczny przewodnik u³atwiaj¹cy rozwi¹zywanie
nawet najbardziej z³o¿onych problemów programistycznych. Dodatkowo zawiera
zupe³nie nowy rozdzia³ po wiêcony wykorzystaniu jêzyka XML w programach pisanych
w Javie oraz zaktualizowane omówienie wielu zaawansowanych mo¿liwo ci tej
platformy — od kolekcji po metody macierzyste, od bezpieczeñstwa po bibliotekê Swing.
Autorzy identyfikuj¹ problemy najczê ciej napotykane przez do wiadczonych
programistów Javy i dostarczaj¹ przemy lanych rozwi¹zañ zilustrowanych przyk³adami
kodu, które uczyni³y z tej ksi¹¿ki prawdziwy bestseller. Dziêki niej ujrzysz w nowym
wietle zagadnienia interfejsu ODBC™, tworzenia aplikacji sieciowych, wykorzystania
zdalnych obiektów i wiele innych.
Najwa¿niejsze informacje dla programistów Java:
• Zaktualizowane omówienie wielow¹tkowo ci, kolekcji i aplikacji sieciowych.
• Zmienione przedstawienie problematyki zdalnych obiektów.
• Nowe, zaawansowane techniki wykorzystania architektury komponentów
JavaBeans™.
• Zaawansowane techniki tworzenia interfejsu u¿ytkownika wykorzystuj¹ce
biblioteki Swing i AWT.
Ksi¹¿ka bêdzie dla Ciebie kolejnym krokiem w poznaniu mo¿liwo ci Javy. Jest
rozszerzeniem i doskona³ym uzupe³nieniem publikacji „Java 2. Postawy”.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Podziękowania................................................................................................................................9
Przedmowa ................................................................................................................................... 11
Do Czytelnika ........................................................................................................................ 11
O książce............................................................................................................................... 11
Rozdział 1. Wielowątkowość ...........................................................................................................15
Czym są wątki? ..................................................................................................................... 16
Zastosowanie wątków...................................................................................................... 21
Uruchamianie i wykonywanie wątków............................................................................... 22
Wykonywanie wielu wątków.............................................................................................. 27
Interfejs Runnable ........................................................................................................... 28
Przerywanie wątków............................................................................................................... 30
Właściwości wątków .............................................................................................................. 32
Stany wątków................................................................................................................... 32
Odblokowanie wątku........................................................................................................ 35
Wątki martwe................................................................................................................... 35
Wątki-demony .................................................................................................................. 36
Grupy wątków .................................................................................................................. 36
Priorytety wątków................................................................................................................... 38
Wątki egoistyczne.................................................................................................................. 45
Synchronizacja ...................................................................................................................... 51
Komunikacja między wątkami bez synchronizacji............................................................. 51
Synchronizacja dostępu do współdzielonych zasobów ..................................................... 55
Blokady obiektów............................................................................................................. 60
Metody wait i notify.......................................................................................................... 61
Bloki synchronizowane..................................................................................................... 66
Synchronizowane metody statyczne................................................................................. 67
Zakleszczenia........................................................................................................................ 68
Dlaczego metody stop i suspend nie są zalecane? ......................................................... 71
Limity czasu..................................................................................................................... 76
Programowanie interfejsu użytkownika przy użyciu wątków.................................................... 77
Wątki i Swing ................................................................................................................... 77
Animacja.......................................................................................................................... 85
Liczniki czasu................................................................................................................... 91
Paski postępu.................................................................................................................. 94
Monitory postępu............................................................................................................. 99
Monitorowanie postępu strumieni wejścia ..................................................................... 103
Zastosowanie potoków do komunikacji pomiędzy wątkami ................................................. 109
4
Java 2. Techniki zaawansowane
Rozdział 2. Kolekcje ..................................................................................................................... 115
Interfejsy kolekcji................................................................................................................. 115
Rozdzielenie interfejsów kolekcji od ich implementacji .................................................. 116
Interfejsy Collection i Iterator w bibliotekach języka Java............................................... 118
Kolekcje konkretne.............................................................................................................. 123
Listy powiązane ............................................................................................................. 123
Klasa ArrayList............................................................................................................... 132
Zbiory z kodowaniem mieszającym ................................................................................ 132
Zbiory drzewiaste........................................................................................................... 139
Mapy.............................................................................................................................. 145
Specjalizowane klasy map ............................................................................................. 150
Szkielet kolekcji................................................................................................................... 155
Widoki i opakowania ...................................................................................................... 158
Operacje masowe .......................................................................................................... 164
Wykorzystanie biblioteki kolekcji z tradycyjnymi bibliotekami ......................................... 165
Algorytmy............................................................................................................................. 166
Sortowanie i tasowanie.................................................................................................. 167
Wyszukiwanie binarne.................................................................................................... 170
Proste algorytmy ............................................................................................................ 171
Programowanie własnych algorytmów ............................................................................ 173
Tradycyjne kolekcje ............................................................................................................. 174
Klasa Hashtable ............................................................................................................ 174
Wyliczenia...................................................................................................................... 175
Zbiory właściwości ......................................................................................................... 176
Stosy ............................................................................................................................. 182
Zbiory bitów ................................................................................................................... 182
Rozdział 3. Programowanie aplikacji sieciowych..........................................................................187
Połączenia z serwerem........................................................................................................ 188
Implementacja serwerów..................................................................................................... 191
Obsługa wielu klientów .................................................................................................. 194
Wysyłanie poczty elektronicznej........................................................................................... 197
Zaawansowane programowanie przy użyciu gniazdek sieciowych ........................................ 202
Połączenia wykorzystujące URL ........................................................................................... 207
URL i URI ....................................................................................................................... 208
Zastosowanie klasy URLConnection do pobierania informacji ....................................... 210
Wysyłanie danych do formularzy .......................................................................................... 219
Skrypty CGI i serwlety .................................................................................................... 219
Wysyłanie danych do serwera stron internetowych ........................................................ 221
Zbieranie informacji w sieci Internet.................................................................................... 227
Bezpieczeństwo apletów................................................................................................ 233
Serwery proxy ................................................................................................................ 236
Testowanie apletu prognozy pogody .............................................................................. 243
Rozdział 4. Połączenia do baz danych: JDBC .................................................................................247
Architektura JDBC................................................................................................................ 248
Typowe zastosowania JDBC ........................................................................................... 251
Język SQL ............................................................................................................................ 252
Instalacja JDBC ................................................................................................................... 258
Podstawowe koncepcje programowania przy użyciu JDBC ................................................... 258
Adresy URL baz danych.................................................................................................. 259
Nawiązywanie połączenia............................................................................................... 259
Spis treści
5
Wykonywanie poleceń języka SQL .................................................................................. 264
Zaawansowane typy języka SQL (JDBC 2) ...................................................................... 266
Wypełnianie bazy danych ............................................................................................... 268
Wykonywanie zapytań.......................................................................................................... 272
Przewijalne i aktualizowalne zbiory wyników zapytań ........................................................... 282
Przewijalne zbiory rekordów (JDBC 2) ............................................................................. 283
Aktualizowalne zbiory rekordów (JDBC 2) ....................................................................... 286
Metadane............................................................................................................................ 290
Transakcje........................................................................................................................... 300
Aktualizacje wsadowe (JDBC 2)...................................................................................... 301
Zaawansowane zarządzanie połączeniami........................................................................... 302
Rozdział 5. Obiekty zdalne ...........................................................................................................305
Wprowadzenie do problematyki obiektów zdalnych: role klienta i serwera ..................... 306
Wywołania zdalnych metod (RMI)......................................................................................... 308
Namiastka i szeregowanie parametrów ......................................................................... 309
Dynamiczne ładowanie klas ........................................................................................... 311
Konfiguracja wywołania zdalnych metod .............................................................................. 311
Interfejsy i implementacje.............................................................................................. 312
Odnajdywanie obiektów serwera .................................................................................... 315
Po stronie klienta........................................................................................................... 319
Przygotowanie wdrożenia ............................................................................................... 323
Wdrożenie programu ...................................................................................................... 326
Przekazywanie parametrów zdalnym metodom .................................................................... 326
Przekazywanie lokalnych obiektów ................................................................................. 326
Przekazywanie zdalnych obiektów .................................................................................. 338
Wykorzystanie zdalnych obiektów w zbiorach................................................................. 341
Klonowanie zdalnych obiektów....................................................................................... 342
Niewłaściwe zdalne parametry....................................................................................... 343
Wykorzystanie RMI w apletach ............................................................................................ 344
Aktywacja obiektów serwera................................................................................................ 348
Java IDL i CORBA................................................................................................................. 355
Język IDL........................................................................................................................ 356
Przykład aplikacji CORBA ............................................................................................... 361
Implementacja serwerów CORBA ................................................................................... 370
Rozdział 6. Zaawansowane mo liwości pakietu Swing .................................................................377
Listy..................................................................................................................................... 377
Komponent JList ............................................................................................................ 378
Modele list..................................................................................................................... 382
Wstawianie i usuwanie .................................................................................................. 387
Odrysowywanie zawartości listy...................................................................................... 389
Drzewa ................................................................................................................................ 394
Najprostsze drzewa........................................................................................................ 395
Przeglądanie węzłów ...................................................................................................... 410
Rysowanie węzłów ......................................................................................................... 412
Nasłuchiwanie zdarzeń w drzewach ............................................................................... 419
Własne modele drzew.................................................................................................... 425
Tabele ................................................................................................................................. 433
Najprostsze tabele......................................................................................................... 433
Modele tabel.................................................................................................................. 437
Filtry sortujące ............................................................................................................... 447
6
Java 2. Techniki zaawansowane
Rysowanie i edytowanie zawartości komórek................................................................. 454
Operacje na wierszach i kolumnach............................................................................... 469
Wybór wierszy, kolumn i komórek .................................................................................. 470
Komponenty formatujące tekst ........................................................................................... 478
Organizatory komponentów ................................................................................................. 484
Panele dzielone ............................................................................................................. 485
Panele z zakładkami ...................................................................................................... 489
Panele pulpitu i ramki wewnętrzne................................................................................. 494
Rozmieszczenie kaskadowe i sąsiadujące..................................................................... 497
Zgłaszanie weta do zmiany właściwości......................................................................... 500
Rozdział 7. Zaawansowane mo liwości biblioteki AWT ..................................................................513
Potokowe tworzenie grafiki .................................................................................................. 514
Figury................................................................................................................................... 516
Wykorzystanie klas obiektów graficznych ....................................................................... 518
Pola ..................................................................................................................................... 531
Ślad pędzla ......................................................................................................................... 535
Wypełnienia......................................................................................................................... 543
Przekształcenia układu współrzędnych ................................................................................ 549
Przycinanie .......................................................................................................................... 557
Przezroczystość i składanie obrazów ................................................................................... 562
Wskazówki operacji graficznych........................................................................................... 570
Czytanie i zapisywanie plików graficznych............................................................................ 575
Wykorzystanie obiektów zapisu i odczytu plików graficznych.......................................... 576
Odczyt i zapis plików zawierających sekwencje obrazów ................................................ 578
Operacje na obrazach.......................................................................................................... 588
Dostęp do danych obrazu .............................................................................................. 588
Filtrowanie obrazów ....................................................................................................... 595
Drukowanie ......................................................................................................................... 604
Drukowanie grafiki ......................................................................................................... 604
Drukowanie wielu stron.................................................................................................. 614
Podgląd wydruku............................................................................................................ 616
Usługi drukowania ......................................................................................................... 625
Usługi drukowania za pośrednictwem strumieni ............................................................ 631
Atrybuty drukowania....................................................................................................... 636
Schowek.............................................................................................................................. 643
Klasy i interfejsy umożliwiające przekazywanie danych .................................................. 644
Przekazywanie tekstu..................................................................................................... 644
Interfejs Transferable i formaty danych.......................................................................... 649
Przekazywanie obrazów za pomocą schowka ................................................................. 651
Wykorzystanie lokalnego schowka do przekazywania referencji obiektów ...................... 656
Wykorzystanie schowka systemowego do przekazywania obiektów Java ....................... 662
Mechanizm „przeciągnij i upuść”......................................................................................... 666
Cele mechanizmu „przeciągnij i upuść” ......................................................................... 668
Źródła mechanizmu „przeciągnij i upuść” ...................................................................... 677
Przekazywanie danych pomiędzy komponentami Swing ................................................. 683
Rozdział 8. JavaBeans.................................................................................................................687
Dlaczego ziarnka? ............................................................................................................... 688
Proces tworzenia ziarnek JavaBeans ................................................................................... 689
Wykorzystanie ziarnek do tworzenia aplikacji....................................................................... 693
Umieszczanie ziarnek w plikach JAR .............................................................................. 694
Korzystanie z ziarnek ..................................................................................................... 696
Zgłoś jeśli naruszono regulamin