„Przybądź Duchu Święty, ześlij z nieba wzięty
światła Twego strumień.
Przyjdź, Ojcze ubogich, Dawco darów mnogich,
Przyjdź, światłości sumień.
O, najmilszy z Gości, słodka serc radości,
Słodkie orzeźwienie.
W pracy Tyś ochłodą, w skwarze żywą wodą,
W płaczu utulenie.
Światłości najświętsza! Serc wierzących wnętrza
Poddaj Twej potędze.
Bez Twojego tchnienia cóż jest wśród stworzenia?
Jeno cierń i nędze.
Obmyj, co nieświęte, oschłym wlej zachętę
Ulecz serca ranę!
Nagnij, co jest harde, rozgrzej serca twarde,
Prowadź zabłąkane.
Daj Twoim wierzącym, w Tobie ufającym,
Siedmiorakie dary!
Daj zasługę męstwa, daj wieniec zwycięstwa,
Daj szczęście bez miary”.„Sekwencja o Duchu Świętym”
Posty oznaczone jako zmiana
Poniżej znajdziesz wszystkie posty oznaczone hasłem „zmiana”. Jeśli uważasz, że któryś z nich nie powinien być tak oznaczony, albo że jeszcze któryś post powinien mieć takie oznaczenie, daj mi znać w komentarzu do danego posta. Nie obiecuję, że zmienię oznaczenia, ale obiecuję, że to sprawdzę!
Zmiany w JavaFX od JavaFX 9
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. Nie są to duże zmiany, ale warto o nich wspomnieć.
Zmiany w JavaFX 10
W JavaFX 10 nie było żadnych zmian w stosunku do Java 9. JavaFX została jedynie przeniesiona z Oracle do OpenJFX.
Zmiany w JavaFX 11
JavaFX 11 stała się zestawem modułów oddzielonych od JDK 11, wymaga jednak obecności przynajmniej OpenJDK 10, a najlepiej JDK 11, które jest rekomendowane.
Od tej wersji autonomiczne (standalone) moduły javafx.* są ładowane przez ładowarkę klas aplikacji i domyślnie nie wymagają zezwoleń (permissions). Aplikacje, które mają być uruchamiane z menedżerem bezpieczeństwa muszą specyfikować plik polityki bezpieczeństwa używając „-Djava.security.policy”, a także udzielając pozwolenia na każdy moduł javafx.*.
Więcej informacji na ten temat znajdziesz na stronie JDK-8210617.
W tej wersji naprawiono też niektóre błędy i wprowadzono szereg rozszerzeń, ich listę znajdziesz tu: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 11.
Najważniejszą zmianą jest dodanie FX Robot API z klasą javax.scene.robot. Robot
w module javafx.graphics
.
Zmiany w JavaFX 12
W wersji JavaFX 12 brak przełomowych zmian. Listę rozszerzeń i naprawionych błędów znajdziesz tutaj: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 12.
Warte zauważenia jest dodanie obsługi File API oraz FileReader
w WebView.
Zmiany w JavaFX 13
Ta wersja nie wnosi nic szczególnie istotnego. Lista rozszerzeń i naprawionych błędów znajduje się tu: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 13.
Zmiany w JavaFX 14
W wersji JavaFX 14 nadal brak przełomowych zmian. Listę rozszerzeń i naprawionych błędów znajdziecie tutaj: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 14.
Warte zauważenia jest wprowadzenie obsługi HTTP/2 do WebView.
Zmiany w JavaFX 15
Również i w tej wersji nie pojawiło się nic szczególnie istotnego. Listę rozszerzeń i naprawionych błędów dla JavaFX 15 znajdziecie tu: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 15, a dla JavaFX 15.0.1 tu: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 15.0.1.
Zmiany w JavaFX 16
Listę rozszerzeń i naprawionych błędów dla JavaDX 16 znajdziecie tutaj: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 16.
W tej wersji pojawia się dość istotna zmiana: od teraz JavaFX musi być załadowana z modułów umieszczonych na ścieżce modułów (MODULEPATH). Nie może być ładowana ze ścieżki klas (CLASSPATH).
Oprócz tych zmian w JavaFX 16 pojawił się też odkryty przez nas błąd. Do wykonania kodu tworzenia migawek zawierajacych linię
BufferedImage bi = SwingFXUtils.fromFXImage(wi, null);
wymagane są moduły java.desktop i javafx.swing. Niestety, 'module-info.java’ wyrzuca komunikat pokazany na obrazku poniżej:
Usunięcie linii dotyczącej 'java.desktop’ niczego nie zmienia, ale kod mimo wszystko się wykonuje. Prawdopodobną przyczyną komunikatu jest błąd w module 'javafx.swing’. Problem występuje tylko w JavaFX 16, we wcześniejszych wersjach JavaFX się nie pojawia.
Zmiany w JavaFX 17
W tej wersji nie pojawiło się nic istotnego. Pełną listę zmian znajdziecie tutaj: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 17. Natomiast listę zmian dla wersji 17.0.0.1 i 17.0.1 można zobaczyć tu: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 17.0.0.1 i 17.0.1.
Zmiany w JavaFX 18
W tej wersji brak istotnych zmian. Pełną listę nowości znajdziecie tutaj: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 18.
Zmiany w JavaFX 19
Nie ma istotnych zmian w tej wersji. Pełną listę nowości znajdziecie tutaj: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 19.
Zmiany w JavaFX 20
W JavaFX 20 weszły w życie dwie ważne zmiany:
1) JavaFX 20 wymaga obecności JDK 17+.
2) W FXML silnik JavaScript jest domyślnie ustawiony na disabled
. Aby użyć kodu JavaScript w FXML, oprócz dodania odpowiedniej biblioteki, należy ustawić zmienną systemową -Djavafx.allowjs=true
. Najlepiej zmienną ustawić na true
w metodzie init
, a na false
w metodzie stop
.
Inne języki skryptowe nie wymagają żadnych zmian. Pełną listę nowości znajdziecie tutaj: lista naprawionych błędów oraz lista rozszerzeń dla JavaFX 20.
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 – ich realizację znajdziecie w artykule Aktualność książki “JavaFX 9. Tworzenie graficznych interfejsów użytkownika”. Książka 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.
Miej cierpliwość do wszystkiego
„Miej cierpliwość do wszystkiego, ale przede wszystkim miej cierpliwość do siebie. Nie trać odwagi przy rozważaniu własnych niedoskonałości, ale natychmiast zacznij im zaradzać – i codziennie zaczynaj tę działalność od nowa”.
św. Franciszek Salezy
Photo by rafabelincanta on Pixabay
Kontempluj cuda, które cię otaczają
„I kontempluj cuda, które cię otaczają, ponieważ świat najbardziej zmienia się wówczas, gdy zmienia się człowiek”.
cyt. za: „Pierwsze kroki na modlitwie”, s. 119
Photo by Myriams-Fotos on Pixabay
W tym męskim pragnieniu kryje się coś niedobrego
„[…] może w tym męskim pragnieniu, by nas wychowywać, kryje się coś niedobrego. Ja wtedy byłam tylko dziewczynką i nie podejrzewałam, że w tym dążeniu do mojej przemiany kryje się dowód, że ja mu się nie podobam taka, jaka jestem, że on chce, abym była inna, że nie pragnie po prostu kobiety, lecz kobiety takiej, jaką on sam chciałby być, gdyby był kobietą. Powiedziałam, że dla Franka ja byłam szansą na zanurzenie się w kobiecości, na zagarnięcie jej: byłam dowodem jego wszechmocy, dowodem na to, że potrafi być nie tylko mężczyzną, ale również kobietą. I dzisiaj, kiedy nie widzi we mnie części samego siebie, czuje się zdradzony”.
E. Ferrante „Historia ucieczki”, s. 437
Photo by Natalia Belovol on Pixabay
Gdy Bóg chce mieć jakąś duszę całkowicie dla siebie
„Gdy Bóg chce mieć jakąś duszę całkowicie dla siebie, najpierw ją miażdży, tak mniej więcej, jak jabłka w prasie przy wyciskaniu soku. Czyni tak, by zmiażdżyć jej namiętności, chęć szukania siebie, słowem – wszystkie jej braki. Następnie zmiażdżoną w ten sposób duszę kształtuje według własnego upodobania, a widząc jej wierność, doprowadza ją w krótkim czasie do całkowitego przekształcenia”.
s. Maria Gabriela, dusza czyśćcowa, do s. Marii od Krzyża, http://kpalys.blogspot.com/2019/01/kiedy-bog-chce-dusze-dla-siebie.html
Tajemnica zmartwychwstania
„Dlatego teraz zobacz w swoim sercu, gdzie tak naprawdę żyjesz w cierpiętnictwie, gdzie żyjesz w sytuacjach, w których nie masz już wiary, że coś się może zmienić. Być może są to sytuacje, które po ludzku cię dobijają i nie wierzysz, że cokolwiek może się jeszcze zmienić na lepsze. Tajemnica zmartwychwstania jest zaproszeniem potężnej mocy Boga do miejsca śmierci, gdzie już się poddałeś, gdzie już coś umarło, gdzie po ludzku już nic nie można zrobić”.
D. Chmielewski „Różaniec ratunkiem dla świata”, s. 43
Tajemnica ofiarowania
„Tajemnica ofiarowania jest bardzo związana z tym, o czym Matka Boża mówi w Medziugorie: «Ofiarujcie mi to, co jest dla was najcenniejsze. Oddajcie mi to, co jest dla was najbardziej wartościowe». Nie mówi: «Oddaj mi coś, co i tak nie zmieni twojego życia, coś, co uważasz za niewielką stratę, gdybyś musiał z tego zrezygnować albo zostałoby ci to zabrane». My z reguły oddajemy w taki sposób: «Matko Boża, oddaję Ci moje dzieci albo mojego męża, żonę», ale tak naprawdę nic nie oddajesz, bo ciągle masz największy wpływ na twoich najbliższych. Oddajesz, ale mówisz, że on ma być taki, jak ty chcesz; twoje dzieci mają być takie, jak ty chcesz.
Tymczasem jeżeli coś naprawdę ofiarowuję komuś, to nie mam już do tego prawa. Nie mówię: «Oddaję ci, ale rób z tym, co ci oddaję, to, co ja chcę». A jeśli oddamy to, co jest dla nas najcenniejsze, to i tak po chwili odbieramy to z powrotem i mówimy: «Wiesz, Boże, nie ruszaj tego, to jest bardzo moje». Jest to wielki problem, ponieważ wszystko to, od czego jesteśmy w jakiś sposób uzależnieni […] prędzej czy później, jak Słowo Boże mówi, przejdzie w przekleństwo kontroli i nieustannego lęku przed utratą tego”.D. Chmielewski „Różaniec ratunkiem dla świata”, s. 20-21
Zgadzam się, Boże, abyś wszedł w moje życie
„[…] zgadzam się, Boże, abyś wszedł w moje życie i – jeśli zechcesz – powywracał mi wszystko do góry nogami. Możesz mi wszystko zrujnować, wszystkie moje plany, ale mówię Ci «tak» na wszystko, «amen» na każde wydarzenie, które przemienia całkowicie moje życie”.
D. Chmielewski „Różaniec ratunkiem dla świata”, s. 13-14
Teresa nie chciała nikomu ciążyć
„[…] Teresa nie chciała nikomu ciążyć. Nie dała sobie prawa do wyrażania emocji i jej charakter uległ przez to zmianie. Teresa zauważyła sama, że od czasu śmierci swojej mamy nie była już taka jak przedtem. «[…] byłam słaba, tak słaba» – zapisała. Straciła siłę ducha i stała się zależna uczuciowo. Ona, która wcześniej była pełna życia i radości, zmieniła się w osobę nieśmiałą, nadwrażliwą i mało komunikatywną poza gronem rodziny”.
B. Dubois „Uzdrowienie zranień z dzieciństwa ze św. Teresą z Lisieux”, tł M. Grabski, 58-59