"Java, to takie proste"
Identyfikator Librowy: 196424
Spis treści
PODZIĘKOWANIA 18
WPROWADZENIE 20
Dlaczego warto nauczyć się programowania? 21
Dlaczego warto programować w języku Java? 21
Co można znaleźć w tej książce 22
Jakie narzędzia będę potrzebne? 22
Materiały pomocnicze 23
Pora zacząć! 23
Zasoby online 23
1. PIERWSZE KROKI 24
Instalowanie wersji Java 8 oraz 9 dla programistów 25
Java dla systemów Windows, macOS oraz Linux 25
Instalowanie programu Eclipse IDE for Java Developers 26
Konfigurowanie środowiska Eclipse 28
Instalowanie edytora WindowBuilder 29
Dostosowywanie wyglądu i działania programu Eclipse 31
Instalowanie Android Studio do tworzenia aplikacji mobilnych 32
Poznawanie języka Java przy użyciu narzędzia JShell 33
Uruchamianie JShell 34
Korzystanie z wyrażeń Java w JShell 36
Deklarowanie zmiennych Java w JShell 37
Drukowanie danych wyjściowych w języku Java 40
Polecenia JShell 40
Co już umiesz 43
2. BUDOWANIE APLIKACJI ZGADYWANKI! 44
Planowanie gry krok po kroku 45
Tworzenie nowego projektu 45
Tworzenie klasy HiLo 46
Generowanie liczby losowej 49
Wczytywanie danych wpisanych na klawiaturze przez użytkownika 51
Przygotowanie programu do drukowania danych wyjściowych 53
Pętle: spytaj, sprawdź, powtórz 54
Instrukcje if: sprawdzanie odpowiednich warunków 56
Dodawanie pętli do ponownego grania 59
Testowanie gry 63
Co już umiesz 65
Zadania programistyczne 67
Zadanie 1: rozszerzanie zakresu 67
Zadanie 2: zliczanie prób 68
Zadanie 3: gra MadLibs 68
3. TWORZENIE GUI DLA NASZEJ ZGADYWANKI 70
Trenowanie umiejętności korzystania z narzędzia JShell 71
Tworzenie interfejsu GUI w czterech wierszach kodu 71
Tworzenie interaktywnego interfejsu GUI za pomocą 10 wierszy kodu! 72
Przygotowywanie aplikacji GUI w programie Eclipse 75
Projektowanie interfejsu GUI przy użyciu edytora WindowBuilder programu Eclipse 77
Projektowanie interfejsu użytkownika 78
Ustawianie właściwości GUI w panelu Properties 78
Dostosowywanie komponentów GUI w panelu Palette 80
Wyrównywanie elementów GUI 83
Nadawanie nazw komponentom GUI do użycia w kodzie 84
Łączenie GUI z kodem źródłowym 85
Dodawanie metody sprawdzającej typowane liczby 87
Pobieranie tekstu z JTextField 87
Konwertowanie łańcuchów na liczby 89
Rozpoczynanie nowej gry 90
Odbieranie zdarzeń użytkownika: kliknij, aby zgadnąć! 91
Przygotowywanie okna GUI 93
Czas zacząć zabawę! 95
Dodawanie funkcji ponownej gry 96
Ulepszanie środowiska użytkownika 97
Automatyczne usuwanie poprzednich prób odgadnięcia 98
Przesyłanie próby odgadnięcia po naciśnięciu klawisza enter 98
Obsługa nieprawidłowych danych wejściowych 100
Zadania programistyczne 103
Co już umiesz 103
Zadanie 1: pokazywanie użytkownikowi liczby prób 104
Zadanie 2: pokazywanie i ukrywanie przycisku Play Again 104
Zadanie 3: tworzenie interfejsu GUI gry MadLibs 105
4. TWORZENIE PIERWSZEJ APLIKACJI W SYSTEMIE ANDROID 106
Rozpoczynanie nowego projektu aplikacji w Android Studio 107
Budowanie układu GUI w widoku projektu 112
Nazywanie komponentów GUI w Android Studio 115
Łączenie interfejsu GUI z kodem Java w Android Studio 117
Dodawanie metod sprawdzania liczby i rozpoczynania nowej gry 121
Obsługiwanie zdarzeń w systemie Android 123
Uruchamianie aplikacji na emulatorze Androida 127
Uruchamianie aplikacji na prawdziwym urządzeniu z systemem Android 132
Przygotowanie urządzenia 132
Podłączanie własnego urządzenia 133
Uruchamianie aplikacji na urządzeniu 134
Ulepszanie środowiska użytkownika 135
Wyśrodkowanie wpisywanej liczby w polu tekstowym 135
Dodawanie interfejsu słuchacza dla klawisza enter 136
Jeszcze jeden ostateczny szlif 137
Zadania programistyczne 138
Co już umiesz 138
Zadanie 1: „Toast”-owanie liczby prób 139
Zadanie 2: zwiększanie atrakcyjności wizualnej 140
Zadanie 3: tworzenie aplikacji mobilnej MadLibs 140
5. UDOSKONALANIE APLIKACJI POPRZEZ DODANIE MENU I PREFERENCJI 142
Dodawanie menu opcji w systemie Android 142
Dodawanie elementów do pliku XML menu 143
Wyświetlanie menu opcji 144
Reagowanie na wybory użytkownika 145
Tworzenie wyskakującego okna dialogowego dla opcji About 146
Modyfikowanie zakresu liczb do odgadnięcia 148
Dodawanie zmiennej zakresu 148
Wykorzystywanie zmiennej range 149
Budowanie okna dialogowego, które umożliwia użytkownikowi wybranie zakresu 150
Przechowywanie preferencji użytkownika i statystyk gry 151
Zapisywanie i pobieranie preferowanego przez użytkownika zakresu 152
Przechowywanie liczby wygranych gier 154
Zadania programistyczne 156
Co już umiesz 156
Zadanie 1: raz wygrana, raz przegrana 156
Zadanie 2: proporcja gier wygranych do przegranych 157
6. ODSZYFROWYWANIE SEKRETNYCH WIADOMOŚCI 158
Kod Cezara 158
Przygotowywanie aplikacji Secret Messages 159
Tworzenie projektu Secret Messages w programie Eclipse 160
Przetwarzanie ciągów znaków 161
Rozpoczynanie kodowania w pliku SecretMessages.java 161
Znaki i wartości w języku Java 165
Szyfrowanie samych liter 167
Zamykanie skanera 169
Dodawanie niestandardowej wartości klucza 171
Szyfrowanie cyfr 172
Uruchamianie aplikacji wiersza poleceń bez programu Eclipse 175
Znajdowanie folderów przestrzeni roboczej 175
Otwieranie okna wiersza poleceń 176
Zadania programistyczne 178
Co już umiesz 178
Zadanie 1: zapętlanie pętli 179
Zadanie 2: odwracanie i szyfrowanie 179
Zadanie 3: bezpieczna obsługa kluczy za pomocą instrukcji try-catch 179
7. TWORZENIE ZAAWANSOWANYCH INTERFEJSÓW GUI I UDOSTĘPNIANIE APLIKACJI 182
Projektowanie interfejsu GUI i nazywanie komponentów 183
Przygotowywanie projektu aplikacji Secret Messages z interfejsem GUI 183
Pisanie kodu aplikacji Secret Messages z interfejsem GUI 187
Tworzenie metody encode() 187
Pisanie obsługi zdarzenia dla przycisku Encode/Decode 189
Obsługa nieprawidłowych danych i błędów 191
Budowanie metody main() i uruchamianie aplikacji 192
Ulepszanie interfejsu GUI 194
Ustawianie zawijania tekstu 197
Obsługa nieprawidłowych danych i błędów: część 2 198
Dodawanie suwaka do interfejsu GUI aplikacji Secret Messages 200
Łamanie szyfru przy użyciu suwaka 202
Bonus: Udostępnianie aplikacji w postaci uruchamialnego pliku JAR 206
Zadania programistyczne 209
Co już umiesz 209
Zadanie 1: przenoszenie w górę! 210
Zadanie 2: przewijanie! 210
Zadanie 3: zmienianie suwaka pod wpływem zmiany tekstu 212
8. PRZEKSZTAŁCANIE SECRET MESSAGES W APLIKACJĘ MOBILNĄ DO UDOSTĘPNIANIA ZNAJOMYM! 214
Przygotowywanie mobilnego interfejsu GUI 215
Projektowanie mobilnego interfejsu GUI 216
Łączenie interfejsu GUI z kodem Javy 221
Łączenie przycisku Encode z metodą encode() 221
Testowanie aplikacji 224
Praca z widżetem SeekBar 226
Uruchamianie aplikacji na emulatorze i urządzeniu z systemem Android 228
Bonus: Dostosowywanie przycisku FAB 230
Odbieranie sekretnych wiadomości z innych aplikacji 233
Zadania programistyczne 236
Co już umiesz 236
Zadanie 1: tworzenie przycisku Move Up 236
Zadanie 2: zmienianie postępu na pasku postępu SeekBar 237
9. RYSOWANIE KOLOROWYCH BĄBELKÓW PRZY UŻYCIU MYSZY! 238
Budowanie okna BubbleDraw 240
Tworzenie plików projektu BubbleDraw 240
Tworzenie klasy Bubble 241
Definiowanie klasy Bubble 241
Projektowanie metod klasy Bubble 243
Przechowywanie bąbelków w ArrayList 247
Dodawanie konstruktora do klasy BubblePanel 248
Dodawanie metody do rysowania na ekranie 249
Testowanie klasy BubblePanel 251
Obsługa zdarzeń myszy inicjowanych przez użytkownika 253
Tworzenie interfejsu słuchacza zdarzeń do wielokrotnego użytku 253
Obsługiwanie kliknięć i przeciągnięć 254
Bonus: obsługa zdarzeń MouseWheel 259
Co już umiesz 261
Zadania programistyczne 262
Zadanie 1: wyeliminowanie zbyt małych bąbelków 262
Zadanie 2: pikselizacja! 262
10. DODAWANIE ANIMACJI I WYKRYWANIE KOLIZJI PRZY UŻYCIU TIMERÓW 266
Kopiowanie projektu Java BubbleDraw w celu utworzenia aplikacji BubbleDrawGUI 267
Zmienianie nazw klasy z metodą main i pliku Java 267
Dodawanie transparentności 269
Dodawanie animacji: bąbelki w ruch! 270
Dodawanie timera 271
Ustawianie timera 271
Przygotowywanie animacji 273
Rozdmuchiwanie bąbelków: dodawanie losowej prędkości i kierunku 274
Uruchamianie timera 274
Budowanie interfejsu GUI dla naszej animowanej aplikacji do rysowania 278
Przygotowywanie panelu oraz przycisków GUI 278
Programowanie przycisków Clear oraz Pause/Start 280
Odbijanie się od ścian dzięki wykrywaniu kolizji 282
Miękkie odbicie 282
Twarde odbicie 285
Dodawanie suwaka do kontrolowania prędkości animacji 286
Dostosowywanie suwaka 287
Implementowanie obsługi zdarzeń suwaka 288
Co już umiesz 290
Zadania programistyczne 291
Zadanie 1: bez nieruchomych bąbelków 291
Zadanie 2: rysowanie elastycznych kształtów 292
Zadanie 3: PixelDraw 2.0 293
11. PRZEKSZTAŁCANIE BUBBLEDRAW W WIELODOTYKOWĄ APLIKACJĘ SYSTEMU ANDROID 296
Przygotowywanie projektu BubbleDraw 297
Tworzenie konstruktora BubbleView 299
Dodawanie zmiennych animacji 299
Tworzenie konstruktora BubbleView() 301
Przygotowywanie układu do użycia widoku BubbleView 302
Modyfikowanie klasy Bubble 303
Rysowanie w systemie Android przy użyciu metody onDraw() 305
Testowanie aplikacji BubbleDraw przy użyciu stu bąbelków 306
Dodawanie metody testBubbles() 306
Naprawianie błędu OnTouchListener 307
Uruchamianie aplikacji BubbleDraw 308
Wykorzystywanie wątkowej animacji i wielozadaniowości w języku Java 310
Wykorzystywanie dotyku do rysowania palcem 312
Wykorzystywanie wielodotykowości do rysowania dziesięcioma palcami naraz! 314
Testowanie zdarzeń wielodotykowości na urządzeniu Android 315
Zmienianie ikony aplikacji 316
Tworzenie niestandardowej ikony aplikacji 316
Dodawanie niestandardowej ikony aplikacji 317
Wyświetlanie nowej ikony 318
Zmienianie nazwy aplikacji 318
Co już umiesz 319
Zadania programistyczne 320
Zadanie 1: łączenie zdarzeń dotknięcia jednym i wieloma palcami, v1.0 320
Zadanie 2: łączenie zdarzeń dotknięcia jednym i wieloma palcami, v2.0 320
DODATEK DEBUGOWANIE I UNIKANIE TYPOWYCH BŁĘDÓW W JĘZYKU JAVA 322
Pisownia i wielkość liter 323
Poprawianie literówek w programie Eclipse 323
Poprawianie literówek w programie Android Studio 324
Problemy z porównaniami 325
Unikanie innych typowych literówek 325
Symbole grupujące 326
Szybkie rozwiązania w programie Eclipse 326
Uzupełnianie kodu w Android Studio 327
Podsumowanie 328
INDEKS RZECZOWY 330