Szczegóły ebooka

JavaFX. Tworzenie graficznych interfejsów użytkownika

JavaFX. Tworzenie graficznych interfejsów użytkownika

Urszula Piechota, Jacek Piechota

Ebook

Zaprzęgnij platformę JavaFX do pracy!

  • Poznaj możliwości rozwiązania JavaFX
  • Naucz się za jego pomocą tworzyć GUI
  • Opanuj niezbędne narzędzia w praktyce

JavaFX to platforma umożliwiająca proste tworzenie atrakcyjnych interfejsów użytkownika dla aplikacji budowanych w języku Java. Wsparcie wzorca projektowego MVC, obsługa XML-a i możliwość formatowania atrakcyjnych wizualnie kontrolek za pomocą arkuszy stylów CSS - to tylko niektóre cechy sprawiające, że zastosowanie rozwiązania upraszcza architekturę aplikacji, przyspiesza ich tworzenie, ułatwia konserwację, umożliwia wydajną pracę nad projektami i pozwala osiągać ciekawe efekty w stosunkowo krótkim czasie.

Jeśli zaczynasz przygodę z Javą i chcesz szybko poznać platformę JavaFX, sięgnij po tę książkę! Krok po kroku wprowadzi Cię ona w świat tworzenia aplikacji wykorzystujących rozwiązania JavaFX, nauczy praktycznego zastosowania najważniejszych funkcji, a także zaprezentuje informacje ułatwiające rozpoczęcie własnych eksperymentów. Dzięki wizualnym wskazówkom i praktycznej pracy z kodem szybko opanujesz niezbędne umiejętności, a przykłady z życia wzięte pozwolą Ci sukcesywnie nabywać bezcennego doświadczenia.

  • Właściwości, wiązanie danych i korzystanie z kolekcji
  • Obsługa zdarzeń, gestów i dotyku
  • Zastosowanie kształtów 2D i kolorów
  • Kształty 3D, kamery i światła
  • Przekształcenia, efekty i animacje
  • Korzystanie z różnych elementów GUI
  • Wykresy, obrazy i rysowanie, audio i wideo
  • Przeglądanie stron WWW i ułatwienia dostępu
  • Wielowątkowość i modularyzacja
  • Współpraca ze Swingiem i korzystanie z FXML-a

Efektowny GUI w Javie? Tylko z platformą JavaFX!


Wstęp 23

Rozdział 1. Wiadomości wstępne 25

  • JavaFX 25
  • Cechy JavaFX 25
  • Szkielet aplikacji 27
  • Metody init() i stop() 28
  • Metoda start() 29
  • Cykl życiowy aplikacji 29
  • Kończenie pracy aplikacji 31
  • Wyrażenia lambda 32
  • Parametry uruchomieniowe 33
  • Wykorzystanie parametrów 34

Rozdział 2. Właściwości i wiązanie danych 37

  • Klasyczne ziarenka JavaBean 37
  • Śledzenie zmian właściwości 38
    • Właściwości indeksowane 39
    • Interfejs Observer i klasa Observable oraz inne sposoby śledzenia zmian 40
    • Flow API 40
  • Właściwości JavaFX 40
    • Właściwości R/W 40
    • Właściwości R 42
    • Śledzenie zmian właściwości JavaFX 43
  • Śledzenie ważności zmiennej 44
  • Wiązanie zmiennych 45
    • Wiązanie jednostronne 45
    • Wiązanie dwustronne 46
    • Wiązanie wysokopoziomowe 48
    • Wiązanie niskopoziomowe 49
  • Zapobieganie wyciekom pamięci 50
  • Adaptacja JavaBean do JavaFX Bean 51
    • Tworzenie adaptera 51

Rozdział 3. Kolekcje 53

  • ObservableList 53
    • Tworzenie arraylisty 54
    • Obserwacja zmian w arrayliście 54
    • Obserwacja zmian właściwości w arrayliście 55
    • Inne sposoby tworzenia arraylisty 56
    • Tworzenie innych list 56
    • Inne sposoby tworzenia list 57
    • Czynności wykonywane na listach 57
  • ObservableSet 57
    • Tworzenie zbioru 57
    • Tworzenie innych zbiorów 57
    • Obserwacja zmian w zbiorze 58
  • ObservableMap 59
    • Tworzenie hashmapy 59
    • Tworzenie innych map 59
    • Obserwacja zmian w hashmapie 59
  • ObservableArray 60
    • Tworzenie tablic 60
    • Obserwowanie tablic 61
    • Praca z tablicami 61
  • Kolekcje jako właściwości 62
    • SimpleListProperty 62
    • SimpleSetProperty i SimpleMapProperty 64
  • Wiązanie właściwości kolekcji 64
  • Wiązanie referencji do kolekcji 65
  • Wiązanie zawartości kolekcji 65
  • Wiązanie do elementu kolekcji 66
  • Filtrowanie kolekcji 67
  • Sortowanie kolekcji 68

Rozdział 4. Okno na scenę 69

  • Window 69
    • Pokazywanie i ukrywanie okna 69
    • Wymiary okna 70
    • Położenie okna 70
    • Informacje o wyświetlaczu 71
    • Właściwość opacity 72
    • Właściwość focused 73
    • Właściwość scene 73
    • Właściwość showing 73
    • Właściwości okna 74
    • Dane użytkownika 74
  • Stage 74
    • Wielkość okna 75
    • Styl okna 76
    • Właściciel okna 78
    • Modalność 78
    • Tytuł okna 80
    • Ikona okna 80
    • Zamknięcie okna 81
    • Metody toTop() i toBack() 81
    • Zmiana rozmiarów okna 81
    • Użycie "dekoracji" okna 82
    • Mocowanie okna 83
    • Tryb pełnoekranowy 83
    • showAndWait() 85
  • Uwagi 86

Rozdział 5. Obsługa zdarzeń 87

  • Drzewo 87
  • Drzewo elementów 88
  • Zdarzenie (Event) 89
  • Typ zdarzenia (EventType) 90
  • Cel zdarzenia (EventTarget) i uchwyt zdarzenia (EventHandler) 90
  • Obieg zdarzeń 91
    • Faza przechwytywania 91
    • Faza bąbelkowania 92
  • Filtry zdarzeń i uchwyty zdarzeń 92
  • Konsumpcja zdarzeń 93
  • Usuwanie filtrów i uchwytów 94
  • Metody skrótowe 94
  • Dyspozytor zdarzenia EventDispatcher 95
  • Łańcuch dyspozytorów EventDispatchChain 95
  • Zdarzenia okien WindowEvent 95
    • Typy zdarzeń 95
    • Dodawanie uchwytów i filtrów zdarzeń 96
    • Usuwanie uchwytów i filtrów zdarzeń 97
    • Zestawienie właściwości uchwytów 97
    • Metody skrótowe 98
    • Metoda fireEvent(Event) 98
  • Zdarzenia wejścia InputEvent 98
    • Zdarzenia myszy MouseEvent 99
    • Klasa MouseDragEvent 105
    • Zdarzenia klawiatury KeyEvent 108
  • Inne zdarzenia 110

Rozdział 6. Wchodzimy na scenę 111

  • Scena (Scene) 111
  • Scenograf 111
  • Elementy 2D i 3D 112
  • Kursor 112
    • Typy kursora 112
    • Ustawianie kursora dla sceny 113
    • Ustawianie kursora dla węzła 113
    • Własny kursor 114
  • Trochę więcej o scenie 114
    • Kombinacje klawiszy 114
    • Dane użytkownika 115
    • Migawka ze sceny 116
    • Arkusze CSS 118

Rozdział 7. Rozplątywanie węzłów 119

  • Klasa Node - schemat dziedziczenia 119
  • Podział węzłów 120
  • Identyfikacja węzłów 120
  • Widzialność 120
  • System współrzędnych 121
    • Przeliczanie współrzędnych 121
  • Granice węzła 124
  • Otoczka 124
    • Właściwość layoutBounds 124
    • Właściwość boundsInLocal 125
    • Właściwość boundsInParent 125
  • Rozszerzalność 126
  • Ustawianie wymiarów 126
  • Opieka rodzicielska 127
  • Przecięcia węzłów 127
  • Przycinanie 128
  • Buforowanie 129
  • Zmiana położenia w scenografie 130
  • Aktywny, nieaktywny 131
  • Cykl fokusu 131
  • Pole powierzchni 132
  • Tworzenie migawek 132
    • Metoda snapshot(SnapshotParameters, WritableImage) 133
    • Metoda snapshot(Callback, SnapshotParameters, WritableImage) 133

Rozdział 8. Kształty 2D 135

  • Schemat dziedziczenia 135
  • Wybrane właściwości i metody klasy Shape 135
    • fill 135
    • smooth 136
    • strokeDashOffset 136
    • strokeLineCap 137
    • strokeLineJoin 137
    • strokeMiterLimit 138
    • stroke 138
    • strokeType 139
    • strokeWidth 139
    • Metoda substract(Shape, Shape) 140
    • Metoda union(Shape, Shape) 140
  • Linia (Line) 141
  • Linia przerywana 141
  • Linia łamana (Polyline) 142
  • Czcionki 143
    • Terminologia czcionek 143
    • Dostępne czcionki 143
    • Czcionka domyślna 144
    • Tworzenie czcionki 144
  • Tekst (Text) 145
    • baselineOffset 145
    • boundsType 146
    • font 146
    • fontSmoothingType 147
    • lineSpacing 147
    • strikethrough 147
    • textAlignment 147
    • textOrigin 148
    • text 148
    • underline 149
    • wrappingWidth 149
    • x, y 149
    • Przykład 149
  • Prostokąt (Rectangle) 150
    • Kontur prostokąta 151
  • Koło (Circle) 152
  • Elipsa (Ellipse) 153
  • Łuk, wycinek koła (Arc) 153
  • Wielokąt (wielobok) (Polygon) 156
  • Krzywe Béziera 157
    • Kwadratowa krzywa Béziera (QuadCurve) 157
    • Sześcienna krzywa Béziera (CubicCurve) 158
  • Ścieżka (Path) 159
    • Klasa PathElement 159
    • Klasa ArcTo 159
    • Przykład 1. 160
    • Przykład 2. 161
    • Klasa FillRule 162
  • Ścieżka SVG (SVGPath) 163

Rozdział 9. Feeria kolorów 167

  • Modele kolorów 167
    • Modele RGB i RGBA 167
    • Model HSL/HSV 168
  • Palety kolorów 169
    • Paleta 16 kolorów nazwanych 169
    • Paleta Web Safe Colors 169
    • Paleta kolorów nazwanych CSS 170
    • Rozszerzona paleta kolorów nazwanych EN 170
    • Paleta kolorów mających polskie nazwy 170
    • Paleta nazwanych kolorów HSL 170
    • Paleta kolorów HSL 170
  • Kolory w JavaFX 170
    • Tworzenie kolorów 171
    • Zmiany jasności 174
    • Zmiany nasycenia 174
    • Odcienie szarości 174
    • Interpolacja koloru 175
    • Odwrócenie koloru 175
  • Wypełnienie obrazem 176
    • Desenie proporcjonalne 177
    • Desenie nieproporcjonalne 179
  • Gradienty 179
    • Obiekt Stop 179
    • Gradienty liniowe 180
    • Gradienty radialne 183
  • Przeliczenia kolorów 188

Rozdział 10. Przekształcenia 189

  • Schemat dziedziczenia 189
  • Algebra liniowa 189
  • Wektor kolumnowy punktu 190
    • Wektor punktu 3D 190
    • Wektor punktu 2D 190
  • Macierz transformacji 190
    • Macierz transformacji 3D 190
    • Macierz transformacji 2D 190
  • Mnożenie wektora 3D przez macierz 3D 191
  • Mnożenie wektora 2D przez macierz 2D 191
  • Mnożenie macierzy 2D przez macierz 2D 192
    • Mnożenie macierzy 192
  • Translacja (przesunięcie) 194
    • Macierz translacji 3D 194
    • Macierz translacji 2D 194
    • Translacja w JavaFX 194
  • Skalowanie 195
    • Macierz skalowania 3D 195
    • Macierz skalowania 3D z uwzględnieniem punktu skalowania 195
    • Macierz skalowania 2D 196
    • Macierz skalowania 2D z uwzględnieniem punktu skalowania 196
    • Skalowanie w JavaFX 196
  • Przekrzywienie 198
    • Macierz przekrzywienia 2D 198
    • Macierz przekrzywienia 2D z uwzględnieniem punktu przekrzywienia 198
    • Przekrzywienia w JavaFX 198
  • Obrót 199
    • Macierze obrotu 3D 199
    • Macierze obrotu 3D z uwzględnieniem punktu obrotu 200
    • Macierz obrotu 2D 201
    • Macierz obrotu 2D z uwzględnieniem punktu obrotu 202
    • Obrót w JavaFX 202
  • Przekształcenia afiniczne 203
    • Odbicie względem prostej przechodzącej przez punkt (0, 0) 203
    • Odbicie względem prostej nieprzechodzącej przez punkt (0, 0) 205
  • TransformChangeEvent 207
  • Łączenie transformacji 207
  • Dołączanie transformacji 208
    • Metoda void append(Transform) klasy Affine 208
    • Metoda void prepend(Transform) klasy Affine 209
  • Inwersja macierzy 2D 209
    • Macierz jednostkowa 209
    • Wyznacznik macierzy 209
    • Transpozycja macierzy 211
    • Dzielenie macierzy 212
    • Macierz odwrotna 212

Rozdział 11. Kształty 3D, kamery i światła 217

  • Schemat dziedziczenia 217
  • Klasa Shape3D 217
    • Tworzenie obiektu 3D 218
    • Sposób renderowania (DrawMode) 219
    • Widoczność figury (CullFace) 220
  • Kamery 221
    • Kamera równoległa (ParallelCamera) 221
    • Kamera perspektywiczna (PerspectiveCamera) 221
    • Operowanie kamerą 222
  • Światła 224
    • AmbientLight 224
    • PointLight 225
  • Materiał 225
    • PhongMaterial 226
  • A jednak się kręci - ruch obiektu 3D 227
  • Klasa SubScene 228
    • Nakładka dla kontrolek 229
    • Podkładka dla tła 230
    • Wyświetlacz przezierny 230

Rozdział 12. Zdarzenia gestów i dotyku 233

  • Ważne uwagi 233
  • Schemat dziedziczenia 233
  • Zdarzenia dotyku TouchEvent 234
    • Typy zdarzeń 234
    • Informacje o zdarzeniu 234
  • Punkt dotyku TouchPoint 235
    • Cel zdarzenia 235
    • TouchPoint.STATE 236
    • Wynik próbkowania PickResult 236
    • Zdarzenia wielodotykowe 236
  • Zdarzenia gestów GestureEvent 237
    • Zdarzenia obrotu RotateEvent 238
    • Zdarzenia przewijania ScrollEvent 240
    • Zdarzenia przeciągania palcem SwipeEvent 242
    • Zdarzenia rozszerzania ZoomEvent 243
    • Zdarzenia myszy a zdarzenia gestów 244

Rozdział 13. Efekty 245

  • Klasy efektów 245
  • Efekt DropShadow - padający (rzucany) cień 246
  • Efekt InnerShadow - cień wewnętrzny 248
  • Shadow - cień 249
  • BoxBlur - rozmycie pudełkowe 250
  • GaussianBlur - rozmycie Gaussa 251
  • MotionBlur - rozmycie smugowe 251
  • Bloom - odblask 252
  • Glow - poświata 253
  • Reflection - odbicie 253
  • SepiaTone - filtr sepia 254
  • FloatMap 255
  • DisplacementMap - mapa przemieszczeń (pikseli) 256
  • ColorAdjust - podkręcenie koloru 257
  • ColorInput - kolor wejściowy 258
  • ImageInput - obraz wejściowy 259
  • BlendMode - tryb mieszania 259
  • Blend - mieszanina 261
    • Mieszanie kolorów 261
    • Mieszanie obrazów 262
  • Wtapianie w tło 263
  • PerspectiveTransform - zmiana perspektywy 264
  • Lighting - oświetlenie 265
  • Klasa Light 267
    • Light.Distant 267
    • Light.Point 268
    • Light.Spot 268
  • Łączenie efektów 269

Rozdział 14. Animacje 271

  • Schemat dziedziczenia 271
  • Wprowadzenie 272
  • Klasa Duration 273
  • Interpolacja 275
    • Klasa Interpolator.LINEAR 275
    • Klasa Interpolator.DISCRETE 277
    • Klasy Interpolator.EASE_xxx 278
    • Metody klasy Interpolator 281
    • Metody statyczne klasy Interpolator 282
  • Klasa KeyValue 284
  • Klasa KeyFrame 284
    • eventHandler 284
    • name 285
    • keyValues 286
    • duration 286
  • Klasa Timeline 286
  • Klasa Animation 286
    • Właściwości 287
    • Metody 288
    • Przykład 288
  • Klasa AnimationTimer 289
  • Klasa Transition 289
    • StrokeTransition 290
    • FillTransition 291
    • FadeTransition 291
    • ScaleTransition 292
    • RotateTransition 293
    • TranslateTransition 294
    • PathTransition 294
    • PauseTransition 295
    • SequentialTransition 295
    • ParallelTransition 297

Rozdział 15. Kontenery i zarządcy rozkładów 299

  • Schemat dziedziczenia 299
  • Klasa Parent 300
  • Klasa Group 300
  • Klasa Region 301
    • Pole zawartości i dopełnienie 302
    • Tło i obramowanie 303
    • Kształt regionu 303
    • Dzieci regionu 304
    • Tworzenie regionu 304
  • Klasa Background 306
    • Klasa BackgroundFill 306
    • Klasa BackgroundImage 307
  • Klasa Border 310
  • Klasa BorderStroke 311
  • Klasa BorderImage 312
  • Zarządcy rozkładów 315
    • Rozkład dowolny (Pane) 316
    • Wyliczenie (Pos) 317
    • Rozkład warstwowy (StackPane) 318
    • Rozkład poziomy (HBox) 320
    • Rozkład pionowy (VBox) 322
    • Rozkład przepływowy (FlowPane) 325
    • Rozkład tekstowy (TextFlow) 327
    • Rozkład brzegowy (BorderPane) 328
    • Rozkład kotwowy (AnchorPane) 330
    • Rozkład kafelkowy (TilePane) 331
    • Rozkład siatkowy (GridPane) 333

Rozdział 16. Wyskakujące okna 337

  • Schemat dziedziczenia 337
  • Wyskakujące okno (PopupWindow) 337
  • Okno podręczne (Popup) 339
  • Okno kontrolne (PopupControl) 340
  • Podpowiedź (Tooltip) 340
    • OverrunStyle 341
    • Podpowiedzi zawierające obraz i klasa ContentDisplay 342
  • Menu kontekstowe (ContextMenu) 344
    • Element menu (MenuItem) 344

Rozdział 17. Panele i przyciski 347

  • Klasa Control 347
  • Klasa Labeled 347
  • TitledPane - panel z nazwą 348
  • Accordion - akordeon 350
  • ScrollBar - pasek przewijania 351
  • ScrollPane - panel przewijany 353
  • SplitPane - panel dzielony 354
  • Tab - zakładka 355
  • TabPane - panel zakładek (kartoteka) 356
  • ButtonBase 359
  • Button - przycisk 360
  • ButtonBar - pasek przycisków 361
  • Hyperlink - łącze 363

Rozdział 18. Kontrolki wyboru 367

  • ToggleButton - przełącznik 367
  • ToggleGroup - grupa przycisków 368
  • RadioButton - przycisk radiowy (opcja wyboru) 369
  • CheckBox - pole wyboru 370
  • ChoiceBox- krótka lista wyboru 372
    • SelectionModeli SingleSelectionModel 373
    • StringConverter 374
  • Cell 376
  • MultipleSelectionModel 378
  • FocusModel 379
  • ListView- lista wyboru 379
    • Przewijanie do indeksu, ustawianie fokusu i orientacji 381
    • Praca z modelem wyboru 382
    • Wykorzystywanie fabryki komórek 383
    • TextFieldListCell 385
    • ComboBoxListCell 387
    • ChoiceBoxListCell 388
    • CheckBoxListCell 388
    • Zdarzenia edycji 389
  • ComboBoxBase 389
  • ComboBox - złożona lista wyboru 391
  • ColorPicker - próbnik koloru 394
  • DatePicker - próbnik daty 395
    • Fabryka dat 399

Rozdział 19. Menu 401

  • Schemat dziedziczenia elementów menu 401
  • MenuBar - pasek menu 401
  • MenuItem - opcja menu 402
  • Menu 403
  • SeparatorMenuItem - separator opcji 404
  • CheckMenuItem - opcja wyboru 405
  • RadioMenuItem - opcja radiowa 406
  • CustomMenuItem - opcja dowolna 406
  • MenuButton - przycisk menu 408
  • SplitMenuButton - dzielony przycisk menu 409

Rozdział 20. Kontrolki tekstowe, liczbowe i inne 411

  • TextInputControl 411
  • TextField - pole tekstowe 413
  • TextFormatter 415
    • TextFormatter.Change 415
    • UnaryOperator 416
  • PasswordField - pole hasła 418
  • TextArea - powierzchnia tekstowa 419
  • HTMLEditor - edytor HTML 420
  • ProgressIndicator - wskaźnik postępu 423
  • ProgressBar - pasek postępu 424
  • Slider - suwak 425
  • Spinner - przewijarka 427
    • SpinnerValueFactory 428
  • Label - etykieta 429
  • Separator 429
  • ToolBar - pasek narzędziowy 430

Rozdział 21. Dialogi 431

  • Optional 431
    • Obsługa obiektu 433
    • Filtrowanie i mapowanie 434
  • ButtonType 435
  • DialogPane - rozkład dialogowy 436
  • Dialog 436
  • Praca z dialogami 438
    • Konfigurowanie dialogu i rozkładu 439
    • Pobieranie wyniku 441
    • Walidacja stanu dialogu i jego zamykanie 442
    • Konwerter wyniku 444
  • Alert - dialog alarmu 444
  • ChoiceDialog - dialog wyboru 446
  • TextInputDialog - dialog tekstowy 447
  • FileChooser - okno wyboru plików 447
  • DirectoryChooser - okno wyboru folderów 449

Rozdział 22. Kontrolki prezentacji danych 451

  • Pagination - stronicowanie 451
  • TableView - tabela danych 453
    • Kolumna tabeli TableColumn 455
    • Fabryka wartości właściwości (PropertyValueFactory) 455
    • Placeholder 456
    • MapValueFactory 457
    • Zmiana widoczności i kolejności kolumn 457
    • Sortowanie 458
    • Zmiana rozmiaru kolumny i zagnieżdżanie kolumn 459
    • Komórka tablicy TableCell 461
    • Wybieranie elementów 462
    • Fokus 463
    • Edycja danych 464
    • Przewijanie 465
  • TreeView - drzewo danych 466
    • Edycja danych 469
    • Model wybierania 471
  • TreeTableView - tabela z drzewem danych 471

Rozdział 23. Wykresy 473

  • Schemat dziedziczenia 473
  • Klasa Chart 474
  • Klasa Axis 474
  • Klasa CategoryAxis 475
  • Klasa ValueAxis 475
  • Klasa NumberAxis 476
  • PieChart - wykres kołowy 476
    • Klasa PieChart.Data 477
  • Klasa XYChart 478
    • Klasa statyczna XYChart.Series 479
    • Klasa statyczna XYChart.Data 479
  • BarChart- wykres paskowy 480
  • StackedBarChart- wykres paskowy skumulowany 481
  • ScatterChart- wykres punktowy 482
  • LineChart- wykres liniowy 483
  • BubbleChart- wykres bąbelkowy 484
  • AreaChart- wykres powierzchniowy 485
  • StackedAreaChart- wykres warstwowy 486

Rozdział 24. Praca z obrazami 487

  • Image 487
    • Pobieranie obrazu za pomocą InputStream i URL-a 489
  • ImageView 491
  • PixelFormat.Type 492
    • Zamiana A, R, G, B na int 492
    • Zamiana int na A, R, G, B 493
  • PixelFormat 494
  • WritablePixelFormat 495
  • PixelReader 496
  • WritableImage 498
  • PixelWriter 499
  • Tworzenie obrazów od zera 501
  • Zapisywanie obrazów 502

Rozdział 25. Rysowanie na płótnie 505

  • Canvas 505
  • GraphicsContext 506
    • Atrybut wypełnienia 507
    • Atrybuty konturu 507
    • Ogólne atrybuty renderowania 509
    • Atrybuty tekstu 513
    • Atrybut ścieżki 514
  • Wyświetlanie kształtów 515
  • Wyświetlanie tekstu 516
  • Wyświetlanie ścieżek 516
  • Wyświetlanie obrazów 517
  • Inne metody 518
  • Przykłady 518
    • Szachownica 518
    • Smok Heighwaya 519
    • Symbol jin-jang 520
    • Animowany symbol jin-jang 522
    • Rozety Grandiego 522

Rozdział 26. Obsługa audio i wideo 525

  • AudioClip 528
  • Track 529
  • Media 529
  • MediaPlayer 530
    • MediaPlayer.Status 533
  • MediaView 533
  • AudioEqualizer 535
  • EqualizerBand 536
  • Klasy zdarzeń i wyjątków 536
  • Przykłady 537
    • Odtwarzacz audio 537
    • Odtwarzacz wideo 539
    • Czas i szybkość odtwarzania 542

Rozdział 27. Przeciąganie systemowe 545

  • Typy przeciągania 545
  • TransferMode 546
  • DragEvent 546
  • Typ MIME 548
  • DataFormat 548
  • Clipboard 549
    • ClipboardContent 550
  • Dragboard 550
  • Przykłady 550
    • Przenoszenie tekstu 550
    • Przenoszenie HTML 551
    • Przenoszenie obrazów 552

Rozdział 28. Wielowątkowość 555

  • Jak zawiesić aplikację 555
  • Jak odwiesić aplikację - tworzenie wątku roboczego 556
  • Jak zaktualizować główny wątek aplikacji 557
  • Klasa Executors 558
  • Wyliczenie Worker.State 558
  • Klasa WorkerStateEvent 559
  • Interface Worker 559
  • Klasa Task 561
  • Klasa Service 565
  • Klasa ScheduledService 567

Rozdział 29. Stylizacja węzłów 571

  • CSS 571
  • Arkusze stylów 571
    • Domyślny arkusz stylów dla aplikacji 572
  • Zmiana stylu w kodzie Java 573
  • Arkusz stylów dla sceny 573
    • Ustawianie domyślnego arkusza stylów 573
    • Ustawianie dodatkowego arkusza stylów 574
  • Domyślny arkusz stylów dla podsceny 574
  • Klasa Parent a arkusze stylów 574
  • Klasa Region a arkusze stylów 575
  • Klasa Node a arkusze stylów 575
    • Właściwości id i style 575
    • Metadane CSS 576
  • Priorytety stylizacji 576
  • Standardy CSS w JavaFX 577
  • Dziedziczenie 577
  • Typy właściwości i jednostki 578
  • Selektory 579
  • Zmiany w Javie 9 581

Rozdział 30. Wybrane klasy 583

  • Klasa Application 583
    • Metoda launch(String ... args) 583
    • Metoda launch(Class class, String ... args) 584
    • Atrybut aplikacji implicitExit 584
    • Metoda notifyPreloader(Preloader.PreloaderNotification) 585
    • Metoda HostServices getHostServices() 586
  • Klasa Platform 587
    • Metoda Platform.isSupported(ConditionalFeature) 587
  • Klasa Preloader 591
  • Klasa Robot 594
    • Nieco zawiedzione nadzieje 596

Rozdział 31. Przeglądanie stron WWW 597

  • WebView 597
  • WebEngine 598
  • Wywołania zwrotne interfejsu 599
    • Uchwyt onAlert 600
    • Uchwyt confirmHandler 601
    • Uchwyt promptHandler 602
    • Uchwyt createPopupHandler 603
    • PopupFeatures 604
    • Uchwyt onResized 605
    • Uchwyt onVisibilityChanged 606
    • Uchwyt onStatusChanged 606
  • JSObject 606
    • Uruchamianie kodu JavaFX z poziomu JavaScriptu 608
    • Uruchamianie kodu JavaScript z JavaFX 609
  • Przeglądarka 609
  • Obsługa HTTP/2 w WebEngine 609
    • Protokół HTTP/2 609
    • Obsługa HTTP/2 w JDK 610
    • Obsługa HTTP/2 w WebEngine 611
    • Sprawdzenie zgodności protokołów żądania i odpowiedzi 611
  • Obsługa File API w WebEngine 612
    • Interfejs FileReader 612
  • Obsługa MathML 614

Rozdział 32. Współpraca ze Swingiem 617

    • SwingNode 617
    • JFXPanel 619
    • SwingFXUtils 623

Rozdział 33. Ułatwienia dostępu 625

  • Ułatwienia dostępu w Windows 7 i nowszych 625
    • Pomoc dla osób niedowidzących 625
    • Pomoc dla osób z niepełnosprawnością ruchową 625
    • Pomoc dla osób niesłyszących 626
    • Narrator 626
    • Skróty klawiaturowe 628
  • Ułatwienia dostępu w JavaFX 628
  • Klasa Platform 628
  • AccessibleRole 628
  • AccessibleAttribute 634
  • AccessibleAction 639
  • Node 640
  • Współpraca z czytnikiem ekranowym 641
  • Ustawianie i odczyt właściwości 641
  • Używanie wyłącznie klawiszy 641
  • Tryb wysokiego kontrastu 642

Rozdział 34. FXML 643

  • Witaj, FXML-u 643
  • Import klas 644
  • Kontrolery 645
  • Element 646
  • Stylizacja 647
  • Właściwości domyślne 648
  • Ustawianie właściwości 649
  • Tworzenie obiektów 649
    • Znacznik 650
    • Znacznik 651
    • Znaczniki i 651
    • Znacznik 652
    • Znacznik 653
  • Rozróżnianie atrybutów 654
  • Wiązanie wyrażeń 655
  • Scene Builder 656
  • Zalety i wady FXML-a 656
    • Zalety 656
    • Wady 657

Rozdział 35. Drukowanie węzłów 659

  • Wyliczenia 660
  • JobSettings 661
  • PrinterJob 662
  • Przykłady 663
    • Najprostsze zadanie drukowania 663
    • Wyświetlanie okna ustawień strony 663
    • Wyświetlanie okna drukowania 664
    • Drukowanie strony internetowej 665

Skorowidz 667

  • Tytuł: JavaFX. Tworzenie graficznych interfejsów użytkownika
  • Autor: Urszula Piechota, Jacek Piechota
  • ISBN: 978-83-283-8779-9, 9788328387799
  • Data wydania: 2021-10-12
  • Format: Ebook
  • Identyfikator pozycji: javfxt
  • Wydawca: Helion