JavaFX Links of December 2025
Here is the final JavaFX LinksOfTheMonth for 2025… Thank you all for sharing your knowledge and experience with JavaFX. And we hope to see even more in the next year!
You can find the weekly lists on jfx-central.com. Did we miss anything? Is there anything you want to have included in one of the next overviews? Let us know via links@jfx-central.com.
Core
- A one second, but still impressive, video on YouTube by Carl Dea: “I was able to get 100,000-2M particles ~ 120fps using Apple’s Metal API on M4/GPU, using Java 25 FFM (project Panama), JavaFX WritableImage API. Of course there are more optimizations but really excited to be able to mix Java/JavaFX code with native bindings in a memory safe way. Still more to learn and do. There are different strategies to avoid data copies between CPU and GPU.”
Applications
- Juan Antonio Breña Moral created an “animated spinning ripple surface rendered with JavaFX” using
MemorySegmentfrom the FFM API (Java 22+), JEP 454, to increase performance. Sources and screenshot on GitHub. - Patrik Karlström released CRIC 25.12: “CRIC is a Java custom runtime image creator, a GUI for jlink. It’s built with JDK 25, JavaFX and the Netbeans platform. Downloads available for Windows and Linux, including appimage and Snap.”
Components, Libraries, Tools
- Message by Dirk Lemmermann on Bluesky: “Check out FXMLKit. Another convention-over-configuration framework that removes boilerplate code for loading screens done in FXML. It is inspired by afterburner.fx but also supports JPro multi-user sessions and dependency injection for nested components.” Sources and more description on GitHub and available from Maven Central.
- Version 1.2.0: “It now also supports hot reloading of FXML and CSS. Yes, that’s right … see the changes you made to FXML without restarting your application.”
- Dirk Lemmermann announced v1.3.0 of FxmlKit: “Fixing an issue related to hot reloading of user agent stylesheets of custom controls. It had too many side-effects. It can still be enabled, but by default it is off.”
Podcasts, Videos, Books
- A new JFXInAction interview by Frank Delporte: “Florian Enner impressed me at the Devoxx conference with his 3D visualizations and scientific charts with millions of points, showing real-time data received from robots and sensors. And using the same code, he does this in both desktop and mobile apps! Awe-inspiring work, making maximum use of the powers of hashtag#Java to combine network communication with a JavaFX user interface. And he also shows some amazing things with a JavaFX UI in a C++ application!”
- Lazy Brownie recorded the coding process of a Two Player Pong. No shared code, no comments, just some relaxed music and a screen recording :-)
Tutorials
- New tutorial videos this week by Troels Mortensen:
Miscellaneous
- A Bluesky thread by Sean Tilley: “For my capstone project in Computer Science, I’m writing a desktop music player in Java. I’ve never tried to build one before, but it seems like a decent challenge, and it covers the different data structures we’ve learned about. … Playback will also be interesting to figure out. Java’s audio API doesn’t support MP3 out of the box, but JavaFX does.”
- Similarly, Kz needs to create a game: “I am required to make a game in JavaFX for a University project and I have zero experience in video game dev.”
- Repost of the article by Frank Delporte on Foojay: First Experiments with Java on the LattePanda IOTA: An Alternative to Raspberry Pi? “Since I installed the Java version from Azul with JavaFX included, I could also run a JavaFX demo application. … The application ran smoothly! It showed we’re running on a Linux 64-bit system with Java 25.”
- The JavaFX plugin in IntelliJ IDEA is marked as ‘Ultimate Only’ in the unified distribution IDEA 2025.3. But no panic, it’s a bug: “Until the fix is out, you can install the previous version 2025.2.6 of IntelliJ IDEA to bypass the issue.”
- On Reddit, Rvaranda shared a video and is asking for support: “I’m having a weird problem with FXGL. Don’t know if it’s FPS related, but what happens is, when I start the game, the app’s timer spikes up very briefly at the start, then it stabilizes. As a result, all moving entities moves very quickly initialy, then they slow down to their actual speed.”
- Clément de Tastes shared a screenshot: “Exploring Mandelbrot’s fascinating fractals has been a wonderful way for me to play with Java features. It started as a JavaFX project only, then became the perfect playground to experiment with upcoming features such as Valhalla Value Types and the Vector API. Special mention to FFM as well.”
JFX Central
- New content on JFX Central:
- The links of November got published on Foojay.