Here is the overview of the JavaFX LinksOfTheMonth of March 2024, published on jfx-central.com during this month.
Components, Libraries, Tools
- Pedro Duque Vieira integrated this pull request in FXThemes: "True Dark Mode is now also available on Mac. All thanks to Carl Dea.
- Not new, but siedlerchr pointed us on EasyBind: "Leverages lambdas to reduce boilerplate when creating custom bindings, providing a type-safe alternative to Bindings.select* methods and provides enhanced bindings support for Optional." It's a fork by Tobias Diez of an older project by Tomas Mikula.
- This month Java 22 and JavaFX 22 got released! Here are the release notes of JavaFX 22, including:
- An important change for animations (JDK-8324658): the Animation methods play, start, stop, and pause may now be called on any thread.
- 8 enhancements
- 80 fixed bugs
- 3 security fixes
- You can download JavaFX 22 here:
- As a separate SDK from the Gluon website.
- Or included with a Java JDK from, e.g., the Azul website.
- Release highlights of JavaFX 22 can be found here.
- Abhinay Agarwal highlights this one: "This release includes 'Platform preferences API' which allows developers to style their apps in accordance with the appearance of the OS."
- Kevin Rushforth published a description of JavaFX Incubator Modules.
- Pedro Duque Vieira explains: "These new modules will exist in the JavaFX SDK. They'll be the home of features that are still under review, to possibly later be included as final stable features. One such feature will likely be the Rich Text Area."
- In the Oracle Java 22 Launch Stream, Kevin Rushforth talked about "JavaFX 22 and Beyond".
- JavaFX 23 Early-Access Builds are available.
Applications
- Patrik Karlström announced the release of Mapollage 3.0.0: "3 yrs later, on the very day! The KML generator of geotagged images for GoogleEarth. This is a major rewrite of the UI, combining NetBeans Platform and JavaFX." Sources and downloads are available on GitHub.
- Matt Coley shared a video: "Re-creating Intellij's "Search Everywhere" panel in Recaf 4X".
- Pedro Duque Vieira announced version 4 of HERO, a tool which provides next-generation energy modelling capabilities. Here are the release notes.
- A video of LogoRRR displaying data more densely, "and a tad nicer."
- JabRef immediately bumped to version 22: "We just updated to the newest version of JavaFX 22, and it works fine so far! Great to see so many bugs fixed!"
- Carl Dea shared "a glimpse of a responsive layout for a landing page. Clinical interface terminology system (knowledge base)."
Games
- One of the students of Almas Baim built a dungeon layout generator for FXGL: "Once the API is finalised, it will be available from the next release."
- He also shared a video of a rotating cube with rotating cubes with rotating cubes with...
- And another one video: "In the next release of FXGL the pathfinding API treats all grid based data structures in the same way. This means mazes, dungeons, maps, levels, including custom types, are all easily traversable by entities using pathfinding."
- Almas Baim announced version 21.1 of FXGL:
- new module fxgl-intelligence: speech recognition, hand tracking, text to speech
- mazes/dungeons/grids can utilise A* pathfinding up to 8 directions
- completed QuestService implementation
- Full change log, with 5 new contributors, is here
- And he published a video on YouTube: "FXGL 21.1 Tutorial: Speech Recognition in Java"
- OrangoMango announced version 2.0 of Reflection: "Can you beat all the current 30 levels? New levels, new mechanic, bugfix, new textures, android version and much more. Play it in the browser or download it for Windows, Linux, Mac or Android."
Components, Libraries, Tools
- Dirk Lemmermann has been very productive this week...
- Added a few more features to the DrawerStackPane in GemsFX: "You can now configure the animation duration and the top and side paddings."
- Added field validation via ValidatorFX to the dialog framework in GemsFX: "Will be part of next release."
- Added a 'PowerPane' to GemsFX: "... the mother of all panes ... combining a glass pane, a drawer pane, hidden panes, dialog pane, info center (notification) pane. Basically something that will give you a great quick-start when creating a new app in JavaFX." Check the thread on Twitter for more screenshots.
- "Implemented my own 'Friday Fun Component' now that Gerrit Grunwald is mostly on CRaC 🙂 We needed an 'energy efficiency' display for our energy software at Senapt."
- And and update by Pedro Duque Vieira: "Work in progress (continued - very close to finished): Navigation Control. When shrunk, show popup menus when clicking items - scroll bar shows when items exceed space. And animations when shrinking and expanding."
Podcast, Video, Books
- A new version of the ebook by Frank Delporte, "Getting Started with Java on the Raspberry Pi", is now available here. It contains 20 extra pages describing a joystick-controlled game with Pi4J and the JavaFX FXGL game-library of Almas Baim.
Conferences
- Wolfgang Weigend shared some pictures of the JFX Adopters Meeting: "Thanks a lot for attending my session about JavaFX technology at Zeiss Meditec in Munich."
- If you attend DEVNEXUS (Apr 9-11, 2024, Atlanta, GA), make sure to attend this talk: Java, JavaFX, and Life on Jupiter’s Europa by Jordi Turner and Scott Turner: "To achieve this, we created an infrastructure in Java that allows us to responsively render and interact with maps and space views by combining JavaFX and AWT in a multi-threaded approach. This approach has been extremely successful, and now supports missions outside of Europa Clipper, analyzing spacecraft and data around Saturn, Venus, the Moon, and all the way back to Earth."
Tutorials
- Dave Barrett published a long article with a lot of example code about new Binding and Listener features added to JavaFX in versions 19 and 21: "I looked at the JavaDocs page for ObservableValue in both JFX 16 and 21. There are just 3 methods in JFX 16: addListener(), getValue(), and removeListener(). There are 9 methods in the JFX 21 version. Those 6 new methods (plus one in Observable) are what we are going to look at in this article. And yes, these are game changers!"
- Carl Walker published an article on using custom JavaFX Dialog subclasses.
- The JavaFX standard library doesn't provide a number-only input field. But with this short snippet, provided by Franz Deschler, you can create your own component, that limits the possible input characters to only numbers.
- Creating a JavaFX Project in IntelliJ IDEA: A Step-by-Step Guide on Dev Code F1.
- Frank Delporte wrote a blog post, including two "Code Walk-Trough" videos: "Search in Documentation with a JavaFX ChatGPT-like LangChain4j Application".
- JetBrains published an update of their IntelliJIDEA tutorial: Create a new JavaFX project.
Miscellaneous
- Steve Hannah published a post: "jDeploy vs jpackage - When does it make sense to distribute your Java desktop app with jDeploy vs jpackage"
- Bazlur Rahman created a Mandelbrot fractal using JavaFX with the help of Gemini LLM. The code is available here.
- A shout-out from Sean Phillips to Geertjan Wielenga: "...for investing so much of his personal time providing many helpful articles over the years." in a reaction to a Tweet by CJ: "...due to my curiosity in desktop app development, I learned JavaFX to some extent and utilized NetBeans to create applications back in 2018-19".
- A really great research and JavaFX insights by Christopher Schnick on Foojay, showing how to run standalone JavaFX applications on exotic Linux systems like the Windows Subsystem for Linux or some embedded systems!
- "Pi Day just got more fun! Visualizing Pi with a JavaFX simulation", a video by ANM Bazlur Rahman in a LinkedIn post.
- JabRef posted a first blog of a series of posts on the 20 years anniversary of JabRef, talking with one of the early contributors David Weitzman. He started contributing to JabRef while he was in high school.
- WhiteWoodCity created a Vulkan example and is "now heading for the integration of Vulkan rendering with JavaFX PixelBuffer.". Source code is available on GitHub.
- Almas Baim seems to be struggling with events and the Garbage Collector: "GC: sweeping quietly in the background Why are you all looking at me?"
- Sergey has a question about mobile JavaFX development: "I am very happy to see JavaFX being actively developed and supported. I wonder though how many developers use it for Mobile app development? Is there any recent data available to see the adoption of this technology?"
- Discussion on Reddit: JavaFX at Oracle, present and future?
- Johan Vos gets irritated...: "Even very smart people who I admire don't realize that the 'We have to write 3 clients (ios/android/web)' is wrong. You can do that, but technically there is no reason not to use Java once, and run it everywhere. Granted, the tools/docs/samples for Java Everywhere are way behind the web-copy-paste stuff. Nothing to do with technical stuff. It just doesn't fit in the big tech revenue models. So what?"
- Sean Phillips on Twitter: "JavaFX is fun what can I say. It's great at combining 2D controls and overlays with 3D scenes. This allows me to interactively measure samples from the Biden Deep Fake robocall against known fake volumes to show which were faked and which were real. Super easy, takes 3 minutes."
- He will be presenting a new method for detecting Deep Fake Audio called Projected Volumetric Detection at DevNexus 2024: "Join me in Atlanta April 9-11 if you would like to know more about how to detect AI generated Deep Fakes using Java and JavaFX."
JFX Central
- A new showcase application has been added: "bk.text": "An ergonomic and accessible text system for the German justice system, which supports the digital processing of court proceedings."
- The overview of all the LinksOfTheWeek of February got published on Foojay.io.
Learn About How Your Peers Use Java (and win one pair of Apple AirPods Max)
Take the 10 minute State of Java Survey by Azul by 6:30pm CT on October 18, 2024. Optionally, enter the prize draw and receive the survey results to learn about Java developers and about their OpenJDK versions, distributions, frameworks, libraries, Cloud costs, and application performance.
Get Started