Szczegółowy spis treści


 1. Budowa i ponowne wykorzystanie klas

 1. Abstrakcja i hermetyzacja
 2. Wykorzystanie składowych statycznych
 3. Inicjacje
 4. Przeciążanie metod i konstruktorów
 5. Zastosowanie słowa kluczowego this
 6. Ponowne wykorzystanie klas: kompozycja i dziedziczenie
 7. Przedefiniowanie metod
 8. Rzutowanie typów referencyjnych

 2. Polimorfizm, interfejsy i klasy wewnętrzne

 1. Metody wirtualne i polimorfizm
 2. Znaczenie polimorfizmu
 3. Metody i klasy abstrakcyjne
 4. Interfejsy
 5. Użyteczność interfejsów: przykłady "for-each" i formatowania
 6. Klasy wewnętrzne
 7. Zaawansowane użycie wyliczeń (enum)

 3. Typy i metody sparametryzowane (generics)

 1. Wprowadzenie
 2. Typy surowe i czyszczenie typów
 3. Restrykcje
 4. Ograniczenia parametrów typu
 5. Parametry uniwersalne (wildcards)
 6. Metody sparametryzowane i konkludowanie typów

 4. Wprowadzenie do programowania współbieżnego

 1. Podstawowe pojęcia: procesy i wątki
 2. Jak stworzyć i uruchomić nowy wątek?
 3. Kończenie pracy wątku
 4. Synchronizacja wątków
 5. Koordynacja wątków
 6. Stany wątków
 7. Wstrzymywanie i przerywanie wątków
 8. Priorytety wątków
 9. Demony i grupy
10. Zliczanie czasu i zadania czasowe
11. Pułapki programowania wspólbieżnego

 5. Strumienie

 1. Ogólny obraz: pojęcie strumienia i pakietu we-wy Javy
 2. Klasy strumieniowe
 3. Strumieniowe klasy przedmiotowe. Wiązanie strumieni ze źródłem/odbiornikiem
 4. Klasy przetwarzające (przekształacanie danych w trakcie operacji na strumieniach)
 5. Hierarchie dziedziczenia klas strumieniowych
 6. Buforowanie
 7. Strumienie binarne
 8. Kodowanie
 9. Serializacja obiektów
10. Potoki
11. Obiekty plikowe
12. Pliki o dostępie swobodnym
13. Archiwizacja, kompresja i dekompresja
14. Skaner i formator

 6. Kolekcje

 1. Architektura kolekcji (JCF). Interfejsy i implementacje
 2. Ogólne operacje na kolekcjach. Operacje opcjonalne i grupowe.
 3. Iteratory
 4. Przykład: uniwersalne działania na kolekcjach
 5. Listy i iteratory listowe
 6. Kolejki
 7. Zbiory. Haszowanie i porządkowanie.
 8. Porównywanie obiektów
 9. Mapy
10. Algorytmy, widoki, fabrykatory kolekcji
11. Własne implementacje kolekcji

 7. Programowanie GUI: komponenty wizualne i kontenery

 1. Ogólne reguły działania z komponentami GUI.
 2. Komponenty AWT a komponenty Swingu
 3. Krótki przegląd komponentów Swingu
 4. Wspólne właściwości komponentów (AWT i Swing)
 5. Własne komponenty i rysowanie
 6. Kontenery
 7. Okna
 8. Rozkłady
 9. Działania na kontenerach
10. Komponenty Swingu a wielowątkowość. Schemat aplikacji Swing
11. J-komponenty (wspólne właściwości lekkich komponentów Swingu)
12. Etykiety i przyciski
13. Menu rozwijalne
14. Dialogi

 8. Delegacyjny model obsługi zdarzeń - zasady

 1. Reguły ogólne i mechanizm obsługi zdarzeń
 2. Anonimowe klasy wewnętrzne dla obsługi zdarzeń
 3. Uzyskiwanie informacji o zdarzeniach
 4. Specjalizowani uniwersalni słuchacze zdarzeń
 5. Właściwość clientProperty i jej wykorzystanie przy obsłudze zdarzeń
 6. Selekcja obsługiwanych zdarzeń i komponentów
 7. Dynamiczne zmiany funkcjonalności: przyłączanie i odłączanie słuchaczy
 8. Separacja

 9. Obsługa zdarzeń - konkrety

 1. Hierarchia klas zdarzeniowych
 2. Obsługa zdarzeń - przegląd
 3. Obsługa zdarzeń myszki
 4. Obsługa menu
 5. Fokus
 6. Obsługa klawiatury
 7. Obsługa okien
 8. Zdarzenia na komponentach wyboru

10. Rozbudowane możliwości Swingu

 1. Architektura okien
 2. Okna wewnętrzne
 3. Wyspecjalizowane kontenery Swingu
 4. Akcje
 5. Mapy akcji i mapy klawiaturowe
 6. Obieralny wygląd (pluggable look & feel)
 7. Integracja z pulpitem
 8. Dlugotrwałe zadania i SwingWorker

11. Komponenty Swing i architektura Model-View-Controller

 1. Modele i widoki
 2. Lista: modele i widoki
 3. Zmiany w modelu i komunikacja model-widok
 4. Nasłuch zmian w modelach: uogólnienie.
 5. Suwaki: nasłuch zmian modelu za pomocą ChangeListenera
 6. Lista rozwijalna
 7. Wykreślacze
 8. Tabele
 9. Drzewa
10. Komponenty tekstowe

12. Sortowanie i filtrowanie tabel. Techniki łatwego ponownego użycia

 1. Sort - najprościej
 2. Klucze sortowania
 3. Ikony porządku
 4. Komparatory
 5. Konwertery napisowe
 6. Model danych tabeli - klucz do właściwego sortowania i filtrowania
 7. Uniwersalne GUI sortowania i filtrowania tabel
 8. Model + uniwersalne GUI = łatwe dostosowania i modyfikacje
 9. Sortowanie po kluczach
10. Edycja
11. Filtrowanie wierszy