"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