Szczegóły książki

JavaFX 9. Tworzenie graficznych interfejsów użytkownika

JavaFX 9. Tworzenie graficznych interfejsów użytkownika

Urszula Piechota, Jacek Piechota

Twórz doskonałe GUI z wykorzystaniem JavaFX!

Przykłady zgodne z Java 10!

  • Naucz się wykorzystywać w praktyce platformę JavaFX
  • Dowiedz się, jak osiągać konkretne efekty
  • Poznaj rozwiązania najczęstszych problemów

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 oraz formatowanie kontrolek za pomocą arkuszy stylów CSS - to tylko wybrane cechy, które sprawiają, że zastosowanie tego 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 swoją przygodę z Javą i chcesz szybko poznać platformę JavaFX 9, sięgnij po tę książkę! Bezboleśnie wprowadzi Cię ona w świat tworzenia aplikacji wykorzystujących rozwiązania JavaFX, nauczy praktycznego zastosowania najważniejszych funkcji oraz zaprezentuje informacje, pozwalające rozpocząć własne eksperymenty. Dzięki pracy z kodem szybko opanujesz niezbędne umiejętności, a przykłady z życia wzięte pozwolą krok po kroku zbudować bezcenne doświadczenie.

  • Właściwości, wiązanie danych i korzystanie z kolekcji
  • Obsługa zdarzeń, gestów i dotyku
  • Zastosowanie kształtów 2D
  • 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

Przekonaj się, jakie efekty można osiągnąć dzięki JavaFX!

Wstęp (25)

Rozdział 1. Wiadomości wstępne (27)

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

Rozdział 2. Właściwości i wiązanie danych (39)

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

Rozdział 3. Kolekcje (55)

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

Rozdział 4. Okno na scenę (71)

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

Rozdział 5. Obsługa zdarzeń (89)

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

Rozdział 6. Wchodzimy na scenę (113)

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

Rozdział 7. Rozplątywanie węzłów (121)

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

Rozdział 8. Kształty 2D (137)

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

Rozdział 9. Feeria kolorów (169)

  • Modele kolorów (169)
    • Modele RGB i RGBA (169)
    • Model HSL/HSV (170)
  • Palety kolorów (171)
    • Paleta 16 kolorów nazwanych (171)
    • Paleta Web Safe Colors (171)
    • Paleta kolorów nazwanych CSS (172)
    • Rozszerzona paleta kolorów nazwanych EN (172)
    • Paleta kolorów mających polskie nazwy (172)
    • Paleta nazwanych kolorów HSL (172)
    • Paleta kolorów HSL (172)
  • Kolory w JavaFX (172)
    • Tworzenie kolorów (173)
    • Zmiany jasności (176)
    • Zmiany nasycenia (176)
    • Odcienie szarości (176)
    • Interpolacja koloru (177)
    • Odwrócenie koloru (177)
  • Wypełnienie obrazem (178)
    • Desenie proporcjonalne (179)
    • Desenie nieproporcjonalne (181)
  • Gradienty (181)
    • Obiekt Stop (181)
    • Gradienty liniowe (182)
    • Gradienty radialne (185)
  • Przeliczenia kolorów (190)

Rozdział 10. Przekształcenia (191)

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

Rozdział 11. Kształty 3D, kamery i światła (219)

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

Rozdział 12. Zdarzenia gestów i dotyku (231)

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

Rozdział 13. Efekty (243)

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

Rozdział 14. Animacje (269)

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

Rozdział 15. Kontenery i zarządcy rozkładów (297)

  • Schemat dziedziczenia (297)
  • Klasa Parent (298)
  • Klasa Group (298)
  • Klasa Region (299)
    • Pole zawartości i dopełnienie (300)
    • Tło i obramowanie (301)
    • Kształt regionu (301)
    • Dzieci regionu (302)
    • Tworzenie regionu (302)
  • Klasa Background (304)
    • Klasa BackgroundFill (304)
    • Klasa BackgroundImage (305)
  • Klasa Border (308)
  • Klasa BorderStroke (309)
  • Klasa BorderImage (310)
  • Zarządcy rozkładów (313)
    • Rozkład dowolny (Pane) (314)
    • Wyliczenie (Pos) (315)
    • Rozkład warstwowy (StackPane) (316)
    • Rozkład poziomy (HBox) (318)
    • Rozkład pionowy (VBox) (320)
    • Rozkład przepływowy (FlowPane) (323)
    • Rozkład tekstowy (TextFlow) (325)
    • Rozkład brzegowy (BorderPane) (326)
    • Rozkład kotwowy (AnchorPane) (328)
    • Rozkład kafelkowy (TilePane) (329)
    • Rozkład siatkowy (GridPane) (331)

Rozdział 16. Wyskakujące okna (335)

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

Rozdział 17. Panele i przyciski (345)

  • Klasa Control (345)
  • Klasa Labeled (345)
  • TitledPane - panel z nazwą (346)
  • Accordion - akordeon (348)
  • ScrollBar - pasek przewijania (349)
  • ScrollPane - panel przewijany (351)
  • SplitPane - panel dzielony (352)
  • Tab - zakładka (353)
  • TabPane - panel zakładek (kartoteka) (354)
  • ButtonBase (357)
  • Button - przycisk (358)
  • ButtonBar - pasek przycisków (359)
  • Hyperlink - łącze (361)

Rozdział 18. Kontrolki wyboru (365)

  • ToggleButton - przełącznik (365)
  • ToggleGroup - grupa przycisków (366)
  • RadioButton - przycisk radiowy (opcja wyboru) (367)
  • CheckBox - pole wyboru (368)
  • ChoiceBox - krótka lista wyboru (370)
    • SelectionModel i SingleSelectionModel (371)
    • StringConverter (372)
  • Cell (374)
  • MultipleSelectionModel (376)
  • FocusModel (377)
  • ListView - lista wyboru (377)
    • Przewijanie do indeksu, ustawianie fokusu i orientacji (379)
    • Praca z modelem wyboru (380)
    • Wykorzystywanie fabryki komórek (381)
    • TextFieldListCell (383)
    • ComboBoxListCell (385)
    • ChoiceBoxListCell (386)
    • CheckBoxListCell (386)
    • Zdarzenia edycji (387)
  • ComboBoxBase (387)
  • ComboBox - złożona lista wyboru (389)
  • ColorPicker - próbnik koloru (392)
  • DatePicker - próbnik daty (393)
    • Fabryka dat (397)

Rozdział 19. Menu (399)

  • Schemat dziedziczenia elementów menu (399)
  • MenuBar - pasek menu (399)
  • MenuItem - opcja menu (400)
  • Menu (401)
  • SeparatorMenuItem - separator opcji (402)
  • CheckMenuItem - opcja wyboru (403)
  • RadioMenuItem - opcja radiowa (404)
  • CustomMenuItem - opcja dowolna (404)
  • MenuButton - przycisk menu (406)
  • SplitMenuButton - dzielony przycisk menu (407)

Rozdział 20. Kontrolki tekstowe, liczbowe i inne (409)

  • TextInputControl (409)
  • TextField - pole tekstowe (411)
  • TextFormatter (413)
    • TextFormatter.Change (413)
    • UnaryOperator (414)
  • PasswordField - pole hasła (416)
  • TextArea - powierzchnia tekstowa (417)
  • HTMLEditor - edytor HTML (418)
  • ProgressIndicator - wskaźnik postępu (421)
  • ProgressBar - pasek postępu (422)
  • Slider - suwak (423)
  • Spinner - przewijarka (425)
    • SpinnerValueFactory (426)
  • Label - etykieta (427)
  • Separator (427)
  • ToolBar - pasek narzędziowy (428)

Rozdział 21. Dialogi (429)

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

Rozdział 22. Kontrolki prezentacji danych (449)

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

Rozdział 23. Wykresy (471)

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

Rozdział 24. Praca z obrazami (485)

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

Rozdział 25. Rysowanie na płótnie (503)

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

Rozdział 26. Obsługa audio i wideo (523)

  • AudioClip (526)
  • Track (527)
  • Media (527)
  • MediaPlayer (528)
    • MediaPlayer.Status (531)
  • MediaView (531)
  • AudioEqualizer (533)
  • EqualizerBand (534)
  • Klasy zdarzeń i wyjątków (534)
  • Przykłady (535)
    • Odtwarzacz audio (535)
    • Odtwarzacz wideo (537)
    • Czas i szybkość odtwarzania (540)

Rozdział 27. Przeciąganie systemowe (543)

  • Typy przeciągania (543)
  • TransferMode (544)
  • DragEvent (544)
  • Typ MIME (546)
  • DataFormat (546)
  • Clipboard (547)
    • ClipboardContent (548)
  • Dragboard (548)
  • Przykłady (548)
    • Przenoszenie tekstu (548)
    • Przenoszenie HTML (549)
    • Przenoszenie obrazów (550)

Rozdział 28. Wielowątkowość (553)

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

Rozdział 29. Stylizacja węzłów (569)

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

Rozdział 30. Nashorn (581)

  • Uruchomienie skryptu ze stringa (581)
  • Uruchomienie skryptu z pliku (582)
  • JavaFX w skrypcie (582)
  • Wiązanie (583)
  • Uproszczenie skryptu (584)
  • Uchwyty zdarzeń (585)

Rozdział 31. Przeglądanie stron WWW (587)

  • WebView (587)
  • WebEngine (588)
  • Wywołania zwrotne interfejsu (589)
    • Uchwyt onAlert (590)
    • Uchwyt confirmHandler (591)
    • Uchwyt promptHandler (592)
    • Uchwyt createPopupHandler (593)
    • PopupFeatures (594)
    • Uchwyt onResized (595)
    • Uchwyt onVisibilityChanged (596)
    • Uchwyt onStatusChanged (596)
  • JSObject (596)
    • Uruchamianie kodu JavaFX z poziomu JavaScriptu (598)
    • Uruchamianie kodu JavaScript z JavaFX (599)
  • Przeglądarka (599)

Rozdział 32. Współpraca ze Swingiem (601)

  • Współpraca z biblioteką SWT (601)
  • Aplety (601)
  • JFXPanel (601)
  • SwingNode (602)
  • SwingFXUtils (603)

Rozdział 33. Ułatwienia dostępu (605)

  • Ułatwienia dostępu w Windows 7 i nowszych (605)
    • Pomoc dla osób niedowidzących (605)
    • Pomoc dla osób z niepełnosprawnością ruchową (605)
    • Pomoc dla osób niesłyszących (606)
    • Narrator (606)
    • Skróty klawiaturowe (608)
  • Ułatwienia dostępu w JavaFX (608)
  • Klasa Platform (608)
  • AccessibleRole (608)
  • AccessibleAttribute (614)
  • AccessibleAction (619)
  • Node (620)
  • Współpraca z czytnikiem ekranowym (621)
  • Ustawianie i odczyt właściwości (621)
  • Używanie wyłącznie klawiszy (621)
  • Tryb wysokiego kontrastu (622)

Rozdział 34. FXML (623)

  • Witaj, FXML-u (623)
  • Import klas (624)
  • Kontrolery (625)
  • Element (626)
  • Stylizacja (627)
  • Właściwości domyślne (628)
  • Ustawianie właściwości (629)
  • Tworzenie obiektów (629)
    • Znacznik (630)
    • Znacznik (631)
    • Znaczniki i (631)
    • Znacznik (632)
    • Znacznik (633)
  • Rozróżnianie atrybutów (633)
  • Wiązanie wyrażeń (635)
  • Scene Builder (636)
  • Zalety i wady FXML-a (636)
    • Zalety (636)
    • Wady (636)

Rozdział 35. Drukowanie węzłów (637)

  • Wyliczenia (638)
  • JobSettings (639)
  • PrinterJob (640)
  • Przykłady (641)
    • Najprostsze zadanie drukowania (641)
    • Wyświetlanie okna ustawień strony (641)
    • Wyświetlanie okna drukowania (642)
    • Drukowanie strony internetowej (643)

Rozdział 36. Modularyzacja (645)

  • Modularyzacja kodu (645)
    • Co to jest moduł (645)
    • Słowa kluczowe (646)
    • Zależności cykliczne (646)
    • Dyrektywy (648)
    • Dyrektywy requires i exports (649)
    • Dyrektywa requires transitive (653)
    • Dyrektywa exports to (654)
    • Dyrektywa opens to (655)
    • Dyrektywa opens (656)
    • Moduły otwarte (656)
    • Tworzenie usług zlokalizowanych (656)
    • Dyrektywy provides with oraz uses (657)
    • Tworzenie usług (658)
    • Dyrektywa requires static (660)
    • Pusty plik module-info.java (661)
  • Modularyzacja JDK (662)
    • Moduły agregacyjne (662)
    • Moduły nienazwane (662)
    • Moduły automatyczne (663)

Skorowidz (665)

  • Tytuł: JavaFX 9. Tworzenie graficznych interfejsów użytkownika
  • Autor: Urszula Piechota, Jacek Piechota
  • ISBN książki drukowanej: 978-83-283-3835-7, 9788328338357
  • Data wydania książki drukowanej: 2018-05-11
  • ISBN Ebooka: 978-83-283-4762-5, 9788328347625
  • Data wydania ebooka: 2018-05-11
  • Format: 168x237
  • Identyfikator książki: jafx9t

Politechnika Białostocka

15-351 Białystok ul. Wiejska 45A

Uniwersytet Mikołaja Kopernika

87-100 Toruń ul. Gagarina 11

Politechnika Wrocławska

50-370 Wrocław ul. Wybrzeże Wyspiańskiego 27

Wojewódzka Biblioteka Publiczna i Centrum Animacji Kultury

60-819 Poznań ul. B. Prusa 3