
JavaFX Links of October 2026
Here are the JavaFX LinksOfTheMonth of October 2026. 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
- John Hendrikx integrated JDK-8290310: ChangeListener events are incorrect into OpenJFX. The related review thread (RFR: 8290310) ran to over 50 messages.
- Remarkable comment by mstr2 in the pull request: “Through every release and across time, this PR has always stood firm. Like a solid rock in a sea of change. Contributors came and went. JDKs grew old. But this PR remained. At some point, we stopped thinking of it as pending work, and started seeing it as a precious landmark. And now, an era has come to an end. We had prepared for another review round, but we had not prepared for closure.”
- Johan Vos announced the CPU releases JavaFX 17.0.21, 21.0.13, 25.0.5 and 27.0.1. All builds are available for free, with commercial support available from Gluon. “This release is packed with security fixes that I had to inspect line by line. To me, it was the hardest one ever, but I’m happy with the result.”
- From the OpenJFX Dev mailing list:
- OpenJFX team integrated RichTextArea image import support: JDK-8388276 lands the ability to import images into the
RichTextAreacontrol. - OpenJFX team fixed stale TableView cells after refresh(): JDK-8394617 resolves a bug where
TableView.refresh()left stale cells in the VirtualFlow pile, showing old content when scrolled back into view. - OpenJFX integrates D3D9 lighting cache optimization (JDK-8392736): A change was integrated into the OpenJFX mainline that caches lights instead of reuploading them to the GPU on every call, improving Direct3D9 rendering performance.
- JavaFX on Wayland — A Working Proof of Concept was shared on the openjfx-dev mailing list: a community contributor presented a working proof of concept demonstrating native Wayland support for JavaFX, a long-requested capability for Linux desktops.
- Integrated: 8384258: Memory Leak in ListenerHelper: A fix for a memory leak in JavaFX’s internal
ListenerHelperhas been integrated into OpenJFX. - Integrated: 8264588: Double clicking a word in TextArea selects wrong word: A fix for incorrect word selection when double-clicking inside a
TextAreahas been integrated into OpenJFX.
- OpenJFX team integrated RichTextArea image import support: JDK-8388276 lands the ability to import images into the
Applications
- Max Xiong shared a new screenshot of DataCollie, his ongoing #BuildInPublic project, noting that “PostgreSQL’s privilege management is much more complex than MySQL’s. Still, I’m making a little progress every day.”
- Mike built Klunk, a JavaFX log viewer for making large logs easier to navigate and search. It merges logs from files, databases, Kubernetes pods, SFTP and HTTP into one color-coded stream, with SQL-like filtering, bookmarks, real-time tailing and SQLite-backed handling of millions of rows. Free to use, with bundled runtime for Windows, Linux and (untested) macOS.
- Following up on last week’s internal JavaFX tool for automated test recording of temporary power equipment, @afparks shared two new videos. The latest shows the new users and roles pages, with a permissions table that has sticky headers staying in place while scrolling, and an overlapping scroll bar that floats over the rows instead of taking up space on the right.
- Frank Delporte released MelodyMatrix 2.0.0 with a new Learn section with lesson cards tracking level, duration and progress, a Fly-Over view showing the sheet music in 3D with notes highlighted during playback, and a Convert feature that turns mp3, wav and other audio files into MIDI locally.
- AsharPeshimam published a Java PDF app on the Microsoft Store, shared the story on r/JavaFX, and asks for feedback.
- Klunk, a JavaFX log viewing application was shared on r/JavaFX by XenFive. “It’s currently beta, but I use it daily without issues and figured others might find it useful too. Happy to hear feedback, bug reports, or feature ideas.”
- Max Xiong is preparing to launch DataCollie, his database client built with JavaFX, after a long #BuildInPublic journey: “Doing some final prep before launching DataCollie. So many edge cases to handle!”
Games
- Anahata ASI shared a video, Pure JavaFX Lemmings Cyber-Arcade Edition | 60 FPS Recreation (Level 1: Just Dig!), a pure JavaFX recreation of the classic Lemmings game running at 60 FPS.
- Artistic_Solution117 shared on Reddit a “pure JavaFX” Minecraft demo running on NetBeans 31’s JVM, with bytecode dynamically generated by Gemini 3.8 Flash: 9 Java classes (27K tokens), with no
.javaor.classfile written to disk — in-memory JIT compilation and classloading. More JavaFX demos on the YouTube channel. - Hallvard Trætteberg shared RiskFX, an implementation of the Risk world domination game in JavaFX, with a workflow for making an Android version. It includes an AI opponent with a rig for reinforcement learning. “The core is old code written by me, but the rest has Claude helped me implement.” Sources are on GitHub.
Components, Libraries, Tools
- Frank Delporte released version 1.2.6 of Lottie4J, the library to parse, generate & play Lottie animations natively in JavaFX. “It’s a minor update which reduces the logging when animations are started and stopped. Thanks to David Gerber for the merge request.” All info on the Lottie4J website.
- Frank Delporte announced a new version of Lottie4J, the Java and JavaFX library to render Lottie animations. “Release 1.2.7 doesn’t bring new features, but focuses fully on performance. Improvements: image assets are decoded once, and optimized track mattes.” Read more on this blog post.
- Mohd Dilshad Khan shared a tip on switching themes while a Java app is running, without a restart or losing state. In JavaFX it comes down to replacing the stylesheet on the scene with
scene.getStylesheets().setAll(...), so themes live in CSS files a designer can tweak. For Swing, FlatLaf offers the same withFlatDarkLaf.setup()andFlatLaf.updateUI(). You can find his project on GitHub. - Frank Delporte announced version 0.0.4 and 0.0.5 of Sheetmusic4J, the library to parse and render sheet music natively in Java/JavaFX. These releases include new Node-based and 3D fly-over views, and add support for the LilyPond format: “load such a file and render it natively in JavaFX, without running LilyPond.” It also brings engraving improvements like better tuplet placement and octave clef support. A video with a demo of the new views is available on YouTube.
- Frank Delporte released Sheetmusic4J 0.0.5 with LilyPond import/export: Adds LilyPond (.ly) import/export through the unified ScoreFile facade via a parser/interpreter/assembler pipeline, plus engraving improvements such as better tuplet placement and octave clef support — building on the earlier 0.0.4 release, which added the clickable/draggable NodeSheetView and 3D FlyOverSheetView.
- Libán Bande González announced Vitra, a modern UI library for JavaFX with Gantt, Kanban, calendar, charts, Fluent-inspired materials, glass surfaces and custom windows. All controls support CSS and runtime theme switching, and there are no external dependencies. More info is on the website.
Podcasts, Videos, Books
- Josh Long features Andres Almiray in a Spring Office Hours podcast episode. A wide-ranging, high-energy conversation about the future of desktop Java, the pain of Electron, the elegance of JavaFX, and JReleaser — the tool that helps Java projects publish releases, package native installers, generate distribution bundles, compute signatures and checksums, and automate releases across GitHub, GitLab, Maven Central, and more.
- Libán Bande González announced his book “Skinning JavaFX Applications”, “a practical, code-first book built from years of shipping real desktop business applications,” focused on the Control-Skin architecture for building custom controls and skins. It covers custom window chrome, runtime theme switching, modern design materials like Mica and Acrylic from Fluent Design, and micro-interactions, arguing that “CSS is not enough” to make JavaFX apps look like modern Microsoft or JetBrains interfaces. More info on the book’s website.
- Adam Bien talks with guest Ingo Kegel on airhacks.fm #419: “Agents Have No Runtime Insight”: Discusses giving AI coding agents JVM runtime insight through a JProfiler MCP server, including how an agent loop was used to double jclasslib’s performance by outperforming ASM’s bytecode parser, alongside memory-profiling fundamentals like dominator trees. They also touch on a possible Swing and JavaFX revival, because both ship with Java and LLMs know them well.
Tutorials
- Sombriks wrote The state of java desktop, comparing Swing, JavaFX, SWT, and TamboUI through a small todo app example, noting jpackage has made distributing Java desktop apps practical, and describing JavaFX as “the really modern one” with native property bindings, cleaner event handling, and CSS-styled scene graph, best suited “for really big projects”.
- Libán Bande González wrote “Building a JavaFX Code Editor Control”, showing how to build a code editor with the Control/Skin architecture: virtualized line numbers, regex-based syntax highlighting, bracket matching, multi-cursor editing, undo/redo, and autocomplete. The code and gutter are two synchronized
ListViews so line numbers stay fixed during horizontal scrolling. The full implementation is part of his book “Skinning JavaFX Applications”. - sosuisen published “JavaFX Getting Started with VS Code” on his renewed personal website. The article was originally written for JFX Central and was rewritten for Japanese readers and his students. The page has a toggle between Japanese and English. Announcement on Bluesky.
Miscellaneous
- Old_Assistance7 asked on Reddit about the best way to securely store session tokens in a JavaFX app using native OS credential stores (Windows DPAPI/Credential Manager, macOS Keychain, Linux Secret Service). Commenters suggested wrapping the native stores behind a “CredentialStore” abstraction, recommended libraries like java-keyring, and pointed to the Foreign Function & Memory API (JEP 454) as a modern alternative to JNA for calling into native code.
- @afparks is building an internal JavaFX tool for automated test recording of temporary power equipment, with a video of the login screen. The sign-in screens use the new
StageStyle.EXTENDEDfor seamless window controls and Lottie4J for the animation playback. - Ivan Velikanov shared how he saved 3.5 GB of RAM by migrating chat apps and a terminal to JavaFX: On r/JavaFX a discussion about JavaFX versions of WhatsApp, Slack, VS Code and a few other browser-engine/Electron apps. JavaFX-based versions are much snappier, using the serial GC in most cases. The WhatsApp version is built on whatsmeow, and the Slack version and terminal are planned to be shared via fxslack.github.io, which was still empty at the time of posting.
JFX Central
- The links of September got bundled in a monthly overview on Foojay.