Efekty graficzne i animowane dla aplikacji Desktop Java Tworzenie atrakcyjnych programow.pdf

(1064 KB) Pobierz
Efekty graficzne
i animowane dla aplikacji
Desktop Java. Tworzenie
atrakcyjnych programów
Autor: Chet Haase, Romain Guy
T³umaczenie: Pawe³ Gonera
ISBN: 978-83-246-1462-2
Tytu³ orygina³u:
Filthy Rich Clients:
Developing Animated and Graphical
Effects for Desktop Java(TM)
Applications (The Java Series)
Format: 180x235, stron: 584
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!
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
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
6
S
PIS TREŚCI
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
S
PIS TREŚCI
7
CZĘŚĆ II
RENDEROWANIE ZAAWANSOWANEJ GRAFIKI ..... 173
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
Rozdział 6. Przezroczystość .............................................................. 175
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
8
S
PIS TREŚCI
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
Wszystko o czasie ....................................................................................283
Podstawowe koncepcje ...........................................................................284
Animacja bazująca na ramkach ............................................................................ 284
Częstotliwość klatek ............................................................................................... 286
Ruch bazujący na czasie ......................................................................................... 286
Rozdział 12. Podstawy animacji .......................................................... 283
Zgłoś jeśli naruszono regulamin