Efekty graficzne i animowane dla aplikacji Desktop Java. Tworzenie atrakcyjnych programów - Helion
Tytuł oryginału: Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java(TM) Applications (The Java Series)
Tłumaczenie: Paweł Gonera
ISBN: 978-83-246-1462-2
stron: 584, Format: 180x235, okładka: miękka
Data wydania: 2008-10-29
Księgarnia: Helion
Cena książki: 79,00 zł
Poznaj tajniki tworzenia efektownych, a jednocześnie funkcjonalnych aplikacji, które przyciągają rzesze klientów
- Jak tworzyć obrazy i wykorzystywać je w aplikacjach?
- Jak sterować działaniem animacji?
- Jak korzystać z grafiki pulpitu dla języka Java?
Informatyka jest dziedziną, która rozwija się w naprawdę szalonym tempie, a użytkownicy komputerów i konsumenci stawiają coraz większe wymagania wszelkim jej produktom. Oczywiście, to, co atrakcyjne, przyciąga, ale równie istotna jest łatwość korzystania z produktu czy intuicyjność jego użytkowania. Współczesny klient oczekuje takiego właśnie idealnego połączenia. Jak tworzyć funkcjonalne, a jednocześnie efektowne aplikacje? Co powoduje, że klienci są zachwyceni i bawią się, używając aplikacji? O tym właśnie jest książka, którą trzymasz w rękach.
W książce "Efekty graficzne i animowane dla aplikacji Desktop Java. Tworzenie atrakcyjnych programów" autorzy w przystępny, a czasami zabawny sposób opisują dostępne technologie do tworzenia bogatych aplikacji. Czytając ją, nauczysz się, jak wykorzystywać grafikę i animację oraz w jakie efekty wyposażyć interfejs użytkownika, aby był naprawdę atrakcyjny. Z tego podręcznika dowiesz się wszystkiego na temat podstawowych mechanizmów języka Java, Swing, Java 2D czy graficznych interfejsów użytkownika (GUI). Poznasz techniki tworzenia aplikacji z bogatym interfejsem użytkownika, którą będziesz mógł wykonać sam, poczynając od szkiców projektu, poprzez implementację różnych elementów, aż do porywającego końcowego efektu!
- Podstawy grafiki i interfejsów GUI
- Biblioteki grafiki pulpitu dla języka Java
- Podstawy renderingu w Swing
- Java 2D
- Typy obrazów i ich przetwarzanie
- Gradienty
- Animacja
- Efekty statyczne i dynamiczne
- Tworzenie własnych efektów
- Biblioteki - Animated Transitions i Timing Framework
Oto Twoje atrakcyjne aplikacje -- wyjątkowe połączenie estetyki i funkcjonalności oraz milionów zadowolonych klientów!
Osoby które kupowały "Efekty graficzne i animowane dla aplikacji Desktop Java. Tworzenie atrakcyjnych programów", wybierały także:
- Metoda dziel i zwyci 89,00 zł, (26,70 zł -70%)
- Język C. Kurs video. Praktyczne wprowadzenie do programowania 99,00 zł, (29,70 zł -70%)
- Wprowadzenie do Javy. Programowanie i struktury danych. Wydanie XII 193,23 zł, (59,90 zł -69%)
- Spring i Spring Boot. Kurs video. Testowanie aplikacji i bezpiecze 125,42 zł, (45,15 zł -64%)
- Maven. Kurs video. Automatyzacja tworzenia aplikacji w Javie 98,98 zł, (39,59 zł -60%)
Spis treści
Efekty graficzne i animowane dla aplikacji Desktop Java. Tworzenie atrakcyjnych programów -- spis treści
Słowo wstępne (13)
Przedmowa (15)
Podziękowania (21)
O autorach (23)
Wstęp (25)
Część I: Podstawy grafiki i interfejsów GUI (33)
Rozdział 1. Biblioteki grafiki pulpitu dla języka Java - Swing, AWT oraz Java 2D (35)
- Abstract Window Toolkit (AWT) (36)
- Java 2D (37)
- Swing (37)
Rozdział 2. Podstawy renderingu w Swing (39)
- Zdarzenia (40)
- Rysowanie w Swing (41)
- Asynchroniczne żądania odrysowania (42)
- Synchroniczne żądania odrysowania (43)
- Renderowanie w Swing (44)
- paintComponent() (46)
- paint() (48)
- setOpaque() (51)
- Podwójne buforowanie (52)
- Wątki (55)
- Model wątków (57)
- Stopery a wątek rozsyłania zdarzeń (62)
- Bezbolesna obsługa wątków poprzez SwingWorker (63)
- Podsumowanie wątków (66)
Rozdział 3. Podstawy grafiki (67)
- Java 2D (67)
- Rendering (69)
- Pobieranie obiektu Graphics (70)
- Stan grafiki (72)
- Elementarne operacje graficzne (97)
Rozdział 4. Obrazy (115)
- Typy obrazów (116)
- BufferedImage (119)
- Skalowanie obrazów (122)
- Jakość kontra wydajność (125)
- Metoda getFasterScaledInstance() - narzędzie do szybszego i lepszego skalowania obrazów (134)
Rozdział 5. Wydajność (137)
- Zastosowanie obcinania (137)
- Obrazy zapewniające zgodność (143)
- Dlaczego powinniśmy się nimi zajmować? (143)
- Co można powiedzieć o obrazach zarządzanych? (145)
- Zapewnianie zgodności (146)
- Obrazy zarządzane (148)
- Odczytywanie danych z DataBuffer (152)
- Częste renderowanie obrazu (154)
- Obrazy pośrednie (156)
- Zasada ogólna (157)
- Jak to jest realizowane? (157)
- Uwagi (163)
- Podsumowanie (165)
- Optymalne rysowanie figur (165)
- Testowanie wydajności (167)
- Opcje wiersza poleceń (167)
- Renderowanie (169)
- Debugowanie wydajności (171)
Część II: Renderowanie zaawansowanej grafiki (173)
Rozdział 6. Przezroczystość (175)
- Obiekt AlphaComposite (175)
- Obiekt AlphaComposite. 12 reguł (177)
- Clear (179)
- Dst (179)
- DstAtop (179)
- DstIn (180)
- DstOut (180)
- DstOver (181)
- Src (182)
- SrcAtop (183)
- SrcIn (183)
- SrcOut (183)
- SrcOver (184)
- Xor (185)
- Tworzenie i konfigurowanie obiektu AlphaComposite (186)
- Typowe zastosowania AlphaComposite (187)
- Zastosowanie reguły Clear (187)
- Zastosowanie reguły SrcOver (188)
- Zastosowanie reguły SrcIn (189)
- Problemy z użyciem AlphaComposite (191)
- Tworzenie własnej klasy Composite (193)
- Tryb mieszania Add (193)
- Implementowanie CompositeContext (197)
- Łączenie pikseli (198)
- Podsumowanie (200)
Rozdział 7. Gradienty (201)
- Dwuelementowy gradient liniowy (202)
- Efekty specjalne korzystające ze zwykłych gradientów (204)
- Wieloelementowy gradient liniowy (208)
- Gradient kołowy (211)
- Optymalizacja gradientów (214)
- Buforowanie gradientu (215)
- Sprytniejsze buforowanie (216)
- Optymalizacja z użyciem gradientów cyklicznych (217)
Rozdział 8. Przetwarzanie obrazu (219)
- Filtry obrazów (219)
- Przetwarzanie obrazu za pomocą BufferedImageOp (221)
- AffineTransformOp (223)
- ColorConvertOp (224)
- ConvolveOp (226)
- Tworzenie jądra (228)
- Praca na krawędzi (229)
- LookupOp (231)
- RescaleOp (232)
- Własna klasa BufferedImageOp (234)
- Klasa bazowa filtra (234)
- Filtr barwiący (236)
- Uwaga na temat wydajności (241)
- Podsumowanie (242)
Rozdział 9. Szklany panel (243)
- Rysowanie na szklanym panelu (246)
- Optymalizacja rysowania na szklanym panelu (247)
- Blokowanie zdarzeń wejściowych (250)
- Problemy ze zdarzeniami myszy (251)
Rozdział 10. Panele warstwowe (255)
- Wykorzystanie paneli warstwowych (256)
- Porządkowanie komponentów wewnątrz jednej warstwy (260)
- Panele warstwowe i warstwy (261)
- Alternatywa dla JLayeredPane w postaci obiektów Layout (262)
Rozdział 11. Zarządca rysowania (267)
- Gdy Swing staje się zbyt sprytny (267)
- Poznajemy RepaintManager (269)
- Zarządzanie obiektami RepaintManager (270)
- Odbicia i RepaintManager (271)
- Zapewnienie miejsca na odbicie (272)
- Rysowanie odbicia (275)
- Prostszy, przez co sprytniejszy RepaintManager (277)
- Podsumowanie (280)
Część III: Animacja (281)
Rozdział 12. Podstawy animacji (283)
- Wszystko o czasie (283)
- Podstawowe koncepcje (284)
- Animacja bazująca na ramkach (284)
- Częstotliwość klatek (286)
- Ruch bazujący na czasie (286)
- Mierzenie czasu (oraz narzędzia pomiaru czasu platformy) (293)
- "Która godzina?" (293)
- "Czy mogę zamówić budzenie?" (296)
- "Zadzwoń do mnie ponownie. I ponownie. I ponownie" (298)
- Rozdzielczość stopera (305)
- Rozdzielczość System.currentTimeMillis() oraz System.nanoTime() (308)
- Rozdzielczość usypiania (310)
- Rozdzielczość stopera (315)
- Rozwiązanie problemu rozdzielczości (317)
- Animacje w aplikacjach Swing (318)
- Grafika animowana (319)
- Animowany interfejs użytkownika (321)
- Podsumowanie (331)
Rozdział 13. Płynne przesunięcia (333)
- Podstawy. Dlaczego moja animacja źle wygląda? (333)
- Co powoduje "szarpanie" animacji i jak można ją wygładzić? (334)
- Synchronizacja jest (niemal) wszystkim (335)
- Kolor - co za różnica? (338)
- Pionowy powrót plamki - poczucie synchronizacji (348)
- SmoothMoves - program demonstracyjny (353)
- Tworzenie obiektów graficznych (353)
- Uruchamianie stopera (354)
- Renderowanie (355)
- Opcje renderowania (356)
- Podsumowanie (360)
Rozdział 14. Biblioteka Timing Framework. Podstawy (361)
- Wstęp (361)
- Podstawowe koncepcje (363)
- Animator (364)
- Wywołania zwrotne (366)
- Czas trwania (368)
- Powtarzanie (369)
- Rozdzielczość (370)
- Operacje startowe (370)
- Interpolacja (377)
- Przyspieszenia i opóźnienia (378)
- Interpolator (383)
- Podsumowanie (395)
Rozdział 15. Biblioteka Timing Framework. Funkcje zaawansowane (397)
- Wyzwalacze (398)
- Koncepcje i wykorzystanie (398)
- Klasy bazowe wyzwalaczy (400)
- Wbudowane wyzwalacze (400)
- Metody ustawiania właściwości (410)
- PropertySetter (413)
- Evaluator (417)
- KeyFrames (419)
- Podsumowanie (437)
Część IV: Efekty (439)
Rozdział 16. Efekty statyczne (441)
- Rozmycie (441)
- Motywacja (441)
- Proste rozmycie (443)
- Rozmycie Gaussa (446)
- Sposób na wydajność (451)
- Odbicia (452)
- Motywacja (453)
- Rysowanie odbić (453)
- Rozmyte odbicia (454)
- Rzucanie cieni (455)
- Motywacja (455)
- Proste rzucanie cieni (457)
- Realistyczne rzucanie cieni (459)
- Wyróżnienia (460)
- Motywacja (461)
- Rozjaśnienie (462)
- Oświetlenie punktowe (464)
- Podświetlanie tekstu dla zapewnienia lepszej czytelności (466)
- Wyostrzanie (468)
- Motywacja (468)
- Proste wyostrzanie (470)
- Wyostrzanie selektywne (472)
- Wyostrzanie zmniejszonych obrazów (473)
- Podsumowanie (476)
Rozdział 17. Efekty dynamiczne (477)
- Ruch (478)
- Motywacja (478)
- Ruch (480)
- Zanikanie (483)
- Motywacja (483)
- Strategie zanikania (486)
- Zanikanie przy użyciu AlphaComposite (486)
- Zanikanie koloru (488)
- Wzajemne przenikanie (490)
- Proste zanikanie (490)
- Pulsowanie (491)
- Motywacja (491)
- Poczuj puls (492)
- Automatyczne podświetlenie (496)
- Przyspieszony puls (501)
- Sprężyny (503)
- Motywacja (504)
- Gorączka sprężynowania (505)
- Morfing (508)
- Motywacja (508)
- Morfing przycisków (510)
- Podsumowanie (514)
Rozdział 18. Biblioteka Animated Transitions (515)
- Płynne animowanie stanu aplikacji (515)
- Zasada ogólna (516)
- Płynne przejścia - biblioteka (519)
- Animacja stanu aplikacji (519)
- Stany GUI (519)
- API (520)
- Efekty (527)
- Struktura GUI (540)
- Obrazy i ImageHolder (540)
- ScreenTransition (542)
- Płynne przejścia - mechanizmy wewnętrzne, czyli jak zmusić Swing do takich rzeczy (543)
- Konfigurowanie następnego ekranu - po cichu (544)
- Animowanie zmian układu (545)
- Przyspieszanie Swing - wydajność (546)
- Podsumowanie (546)
Rozdział 19. Narodziny bogatego interfejsu użytkownika (547)
- Aerith (547)
- Uruchamianie programu Aerith (548)
- Organizacja kodu (549)
- Projekt przepływu sterowania na papierze (549)
- Wizja (551)
- Projektowanie ekranu na papierze (553)
- Makiety (553)
- Od makiety do kodu (555)
- Zastosowanie warstw (556)
- Tryby mieszania (557)
- Stosowanie prowadnic (558)
- Ale... ja nie jestem artystą! (559)
- Wybór ładnych kolorów (561)
- Książki na temat projektowania (563)
- Podsumowanie (564)
Zakończenie (565)
Skorowidz (569)