Spis treści
Tekst książki jest aktualny na dziś, czyli 17 kwietnia 2021, przy uwzględnieniu uwag z poniższego artykułu.
Od czasu wydania mojej i taty książki, o której pisałam w artykule Kulisy powstania książki “JavaFX 9. Tworzenie graficznych interfejsów użytkownika”, pojawiły się kolejne wersje Javy i JavaFX troszkę się zmieniła (o tych zmianach możesz przeczytać w tekście Zmiany w JavaFX od JavaFX 9). Mimo to książka jest nadal aktualna, a ponieważ chcemy, żebyście mogli z niej swobodnie i wygodnie korzystać, wykorzystując najnowszą wersję JDK, w tym artykule opisujemy zmiany i udostępniamy zaktualizowane kody.
Zmiany w rozdziale 30 – Nashorn
„Rozdział 30. Nashorn”, poświęcony wersji JavaScript „Nashorn”, przeznaczonej dla JDK, stracił rację bytu w dniu 15 września 2020, wraz z pojawieniem się JDK 15, z którego Nashorn został ostatecznie usunięty. Z czasem jednak pojawiły się zmodularyzowane biblioteki Nashorn 15.3, których można używać poprzez Maven albo niezależnie od niego.
Biblioteka Nashorn 15.3
Tutaj znajdziesz plik IdeaIntellij z aktualnymi kodami dotyczącymi Nashorna i FXML, a tutaj potrzebne pliki JAR. Projekt zawiera kody do rozdziału 30 i komplet kodów do rozdziału 34, w tym również te przykłady, które nie wymagają użycia biblioteki Nashorn. Konieczne jest stworzenie biblioteki nashorn, którą można utworzyć z załączonych plików JAR, wymagane jest też JDK oraz JavaFX – najlepiej w wersji 17.0.1.
Zmiany w rozdziale 34 – FXML
W tym rozdziale pojawia się kilka przykładów, pokazujących obsługę przycisków przy użyciu JavaScript Nashorn. W związku z usunięciem Nashorna, przykłady te od wersji JDK 15 przestały działać. Ponieważ jednak obecnie ponownie można używać Nashorna, można również używać FXML.
Zmiany w rozdziale 36 – modularyzacja
„Rozdział 36. Modularyzacja” tylko pośrednio dotyczy JavaFX. Kiedy pisaliśmy książkę, było to zagadnienie nowe, wymagające dokładniejszego omówienia. Dzisiaj wszyscy ten temat znają, a w Internecie jest mnóstwo dobrych materiałów przybliżających związane z nim problemy. Dlatego gdybyśmy wydawali nową wersję książki, ten rozdział zostałby prawdopodobnie usunięty. Mimo to wszystko, co w nim powiedziano, jest nadal aktualne.
Zmiany w kodzie
Kod projektu został przejrzany, sprawdzony i zweryfikowany zgodnie z powyższymi uwagami. Zmiany w kodzie w stosunku do wersji pierwotnej są następujące:
- Ścieżki do plików obrazków, które zaczynały się od 'src/’, teraz zaczynają się od 'JavaFX9/src/’ ze względu na zmiany w układzie modułów.
- Usunięto Rozdział 30. „Nashorn” ze względu na usunięcie tego języka z JDK.
- W przypadku urli ścieżka zmienia się z:
URL url = this.getClass().getClassLoader().getResource("JavaFX9/src/resources/html/alert.html");
na:
URL url = this.getClass().getResource("/resources/html/alert.html");
- Z powodu usunięcia języka Nashorn usunięto pliki:
- Listing34_05.java oraz /resources/listing34_05.fxml
- Listing34_06.java oraz /resources/listing34_06.fxml
- Listing34_07.java oraz /resources/listing34_07.fxml
- Listing34_08.java oraz /resources/listing34_08.fxml
- Listing34_12.java oraz /resources/listing34_12.fxml
- Folder 'math’ dołączono do projektu jako moduł.
- W module 'math’ dodano brakujący folder 'assets’
- Pominięto projekty od Rozdzial36_1 do Rozdzial36_6. Nie wymagają one poprawek i można je ściągnąć ze strony Helionu.
Nowy kod
Poprawiony i zaktualizowany kod w postaci projektu IntelliJ IDEA możecie ściągnąć stąd:
UWAGA!
Jeżeli korzystacie z Google Chrome, przy pobieraniu mogą się pojawić ostrzeżenia o treści: „Plik JavaFX9.zip jest rzadko (albo: nie jest często) pobierany i może być niebezpieczny”. Możecie je zignorować – w plikach nie ma nic niebezpiecznego, a ostrzeżenie pojawia się ze względu na to, że zip zawiera pliki *.iml, charakterystyczne dla projektów IntelliJ IDEA, które są rzadko przesyłane.
Jeżeli w IntelliJ Idea będzie środowisko o nazwie „15” (czyli Open JDK 15.0.2) oraz biblioteka globalna o nazwie „javafx” (JavaFX 15.0.1), nie będziecie mieć problemu z importem projektu.
Do projektu trzeba dodać (tak jak się dodaje bibliotekę) dwa pliki *.jar obecne w folderze src/resources/jars.
W pliku do ściągnięcia nie umieszczano materiałów dotyczących rozdziału 36. Nie wymagały one żadnej zmiany i właściwie są już mało użyteczne, choć wciąż aktualne. Jeśli potrzebujesz – możesz użyć kodów dostępnych na stronie książki w Wydawnictwie Helion.
Nasza książka o JavaFX
Nasza książka o JavaFX już dostępna na stronie Helionu. Bardzo ją Wam polecam. Mimo że dotyczy Javy 9, jest kompatybilna z najnowszą wersją JavaFX, z uwzględnieniem zmian, o których czytaliście w powyższym tekście. Jest napisana przystępnym językiem, tłumaczy zagadnienia w prosty, jasny sposób i pozwala szybko nauczyć się korzystania z funkcjonalności JavaFX. Można ją traktować jako podręcznik, czytając krok po kroku, ale też nic nie stoi na przeszkodzie, by korzystać z niej, szukając konkretnych zagadnień.
Oprócz książki Helion udostępnia też pliki z kodami źródłowymi. Warto je pobrać, bardzo się przy nich napracowaliśmy, ale w efekcie powstał kod, który ułatwia zrozumienie treści znajdujących się w książce. Wszystkie kody można uruchomić i zobaczyć w praktyce, jak działają poszczególne elementy JavaFX. Pliki znajdują się tutaj:
W sprzedaży jest już też dostępna nowa, zaktualizowana wersja książki, zgodna z wersją JavaFX 17:
Kody do nowej książki znajdziecie tutaj:
A jeśli chcielibyście ściągnąć sobie pełny projekt IntelliJ IDEA z kodami przykładów, to jest dostępny tutaj:
Kod w Kotlinie można ściągnąć stąd:
Jeśli chciałbyś wiedzieć, jak zamienić kod JavaFX na Kotlina, to instrukcja znajduje się w tym artykule.
JavaFX 9. Tworzenie graficznych interfejsów użytkownika – JavaFX z Arią
19 czerwca 2021 w 09:49[…] Aktualność książki “JavaFX 9. Tworzenie graficznych interfejsów użytkownika” […]
JavaFX 9. Urszula Piechota, Jacek Piechota | Istis
18 września 2021 w 11:09[…] możesz przeczytać w tekście o zmianach w JavaFX – ich realizację znajdziecie w artykule Aktualność książki “JavaFX 9. Tworzenie graficznych interfejsów użytkownika”. Wiele godzin mojej i taty pracy nie poszło na marne – książka jest napisana przystępnym […]