
JavaFX Links of September 2026
Here are the JavaFX LinksOfTheMonth of September 2026. This was a big month with the release of JavaFX 27!
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
- From the OpenJFX mailing list:
- Alexander Zuev integrated 8384483: Create implementation of NSAccessibilityTable protocol , a 585-line addition across 11 files that gives macOS proper accessibility support for tables and lists: “To preserve functionality the separate native peers for tables and lists are created; the list peer for now reports its role as a table for backward compatibility, that can be changed later; fixed the long existed bug where table reported incorrectly currently selected rows.” Reviewed by Andy Goryachev and Ambarish Rapte. PR #2217 — changeset 67853fbf
- Gufran Thakur asks on Reddit : “What is the future of JavaFX looking like?” A lot of interesting answers already. Want to add yours? And, thank you Marius Hanl, for mentioning JFX Central in your answer, we appreciate it! :-)
- Jose Pereda integrated 8391779: JVM crashes after copy key event on focused WebView that has no selection : “This PR adds a guard to WebKit/EditorJava.cpp, to prevent passing an empty selection to the pasteboard, that would cause an immediate JVM termination, when firing a copy key event over a focused WebView that has no selection.” Reviewed and integrated on 8 September. (PR on GitHub )
- Release cycle note: the cutoff for backports into JavaFX 27.0.1 was 7 September, and jfx27u is now open for 27.0.2 fixes — announced by Kevin Rushforth, version bump integrated by Ambarish Rapte on 8 September.
- The Release Notes for JavaFX 27 are available in the OpenJFX repository and list everything that went into this release: 7 new features, 20 other enhancements, 77 bug fixes and 6 security fixes.
- The Gluon Team published JavaFX 27 is Now Available
with an overview of the release: the Metal rendering pipeline as the new default on macOS, conditional stylesheets and media queries in CSS, JavaFX controls in the window title bar, the RichTextArea additions, and over 70 bug fixes and control performance improvements. Two things to check before upgrading: JavaFX 27 is compiled with
--release 25, so an older JDK fails at startup, and on macOS you can fall back to the previous pipeline with the-Dprism.order=es2launch parameter. - JavaFX 27 Highlights
lists what is new: RichTextArea tab stop attributes plus embedded image, text background and wavy underline attributes; conditional stylesheet imports;
ConditionalFeatureand platform media queries; JavaFX controls in the title bar; animations that now respect the reduced motion preference; improved macOS accessibility including navigable static text and hyperlinks; better Flatpak integration throughGtkFileChooserNative; and iOS improvements includingUIWindowScenesupport. The community fixed more than 60 bugs, and dependencies moved to WebKit 623.1, GStreamer 1.28.3, libxml2 2.15.3 and libxslt 1.1.45. The highlights page credits Gluon for the bulk of the work on this release. - Andy Goryachev integrated 8390913: RichTextArea: Down arrow stuck on paragraph if space above and below are set : “Fixes broken navigation introduced in JDK-8370902 with non-zero paragraph spacing (above, below, line spacing).” The Rich Editor Demo was also updated to allow setting paragraph line spacing in addition to space above/below (right click → Paragraph). A sizeable change at 539 lines across 11 files, reviewed by Jose Pereda and Lukasz Kostyra, integrated on 15 September. (PR on GitHub , changeset )
- Marius Hanl integrated 8392149: Mark deprecated snap methods for removal in SkinBase
, a heads-up for anyone writing custom skins: “Since we will remove the snapping methods in
Regionat one point, we should also do that inSkinBase.” A continuation of JDK-8390773, reviewed by Kevin Rushforth and Andy Goryachev, integrated on 15 September. (PR on GitHub , changeset ) - Michael Redlich wrote up the Java 27 release for InfoQ, with a section on JavaFX 27 : JavaFX 27 joins Helidon 27 and Jipher 20 as new additions to the Oracle Java Verified Portfolio , delivering a “metal rendering pipeline on macOS for smoother performance on modern Apple hardware”, enhanced text editing controls, and continued accessibility improvements.
- Alexander Matveev integrated 8331458: Replace qtdemux with MP4 demux based on Media Foundation
in OpenJFX: “Replaced
qtdemuxwith a Media Foundation-based MP4 demuxer on Windows. H.264 video from MP4 and fMP4 (HLS) is now decoded using Media Foundation instead of DirectShow. This change avoids several DirectShow issues encountered with the new MP4 demuxer and reduces implementation complexity.” The changeset also fixes 8305842 (video sometimes does not start when reinitializing on Windows 11). See PR #2206 and commit 67f70684 . - Michael Strauß integrated a fix for rows disappearing in a TableView with a horizontal scrollbar
: “
VirtualFlowstores the scroll location in two values … These two values can become inconsistent … The patch is quite easy: it setsabsoluteOffsetto zero when all cells fit.” See PR #2317 and the commit . - Public Service Announcement (PSA) from milchshakee on Reddit
: starting with JDK 27, you no longer need a separate
Mainclass to launch a JavaFX application from the classpath, per JDK-8248122 .
Applications
- Former_Weather_1174 made a local music player . “I’ve made a local music player based on JavaFX. Although it’s still quite rudimentary, it already has all the necessary functions. I think some people might be interested in it. Here is the link to the GitHub repository: Kimusic .”
- Helal Anwar shared a video of Passport Studio FX , a desktop application to simplify passport and ID photo preparation for local photo studios and print shops. It provides AI-powered background removal with MODNet and ONNX Runtime, manual cropping with passport-size aspect ratios, custom background colors, zoom controls, standard photo size presets, and A4 print-sheet generation with cutting borders. The tech stack is Java, JavaFX, FXML, OpenCV, ONNX Runtime, MODNet, Apache PDFBox, Maven, and jpackage for the Windows build. All images are processed locally, so nothing gets uploaded to the cloud.
- LooseCartographer989 announced NumeHub on Reddit , claiming it is “the largest JavaFX application ever built”: “Four years ago I opened a JavaFX project to see how far the platform would go before it broke. It never broke. So I kept going.” NumeHub is a single desktop app that bundles projects, CRM, a point-of-sale system, WhatsApp and email campaigns, a file explorer, a browser and system monitoring, with an AI agent (built on MCP tools) on top that answers questions by voice or text. “Millions of nodes. Under half a gig of RAM. A new release every week.” Runs on Windows and macOS (Apple Silicon and Intel) in English, Portuguese, Chinese and German; Linux is planned if there is demand. It’s not open source and downloads are here . The thread turned into a fun “who has the biggest JavaFX app” contest, with PartOfTheBotnet (9 years, 5,440 commits), _DystopianSnowman (13 years, ~90k LOC) and Siedlerchr weighing in for JabRef.
- Thunder_ZEK shared his tiny project on Reddit , Memento: “It’s an application where you are asked 100 questions… about your life, and answers to these 100 questions are basically in depth information about you and your life. So after answering you can download a PDF and share this to anybody.” Built with JDK 17, JavaFX 17, SQLite and OpenPDF, with all data staying on your device unless you export it. The sources are on GitHub . He learned JavaFX from YouTube tutorials and built this over a few months to show he had picked it up - a Windows installer is included, but “it’s only working on my laptop lol.”
- The JabRef Team released JabRef 6.0-beta.1 , the first beta of the next major version of the JavaFX-based BibTeX/BibLaTeX reference manager. Highlights: almost everything is now navigable by keyboard with visual indicators, a fetcher for Software Heritage identifiers (SWHID), the community themes from themes.jabref.org (Everforest, Nord, Papers, Chocolate Honey and more) selectable from the preferences with preview images, per-tab icons, and automatic reconnection to shared databases. Project on GitHub .
- NURI demoed StarLore, a gamified astronomy RPG desktop application : “StarLore is a JavaFX-based desktop application that combines astronomy, mythology, exploration, and interactive gaming.”
Components, Libraries, Tools
- Erik Costlow wrote a post on InfoQ about FlexGanttFX going Open Source : “Dirk Lemmerman has open sourced FlexGanttFX, a resource-scheduling framework for generating Gantt charts. Lemmerman open sourced the library after 15 years as a way of increasing availability of the code for use while using the AGPL license as a way to address project maintenance.”
- Guilty_Village_958 announced on Reddit that luvml 2.1 is on Maven Central, “a type-safe Java DSL that treats your HTML, CSS, and Vue templates as one typed authoring language instead of three.” The one to watch for JavaFX developers is the sibling project luvjfx , “a terse, type-safe construction DSL for JavaFX”: nested calls instead of imperative setup, with the property methods machine-generated from JavaFX itself by reflection (367 capabilities across 51 node types), built-in one-way and two-way binding, and an escape hatch to the raw JavaFX API. No releases yet, so no Maven coordinates for luvjfx for now.
- Chad Preisler needed a sorted list that stays usable at scale : “I needed a sorted list in #JavaFX that could show millions of records in a TableView and still be usable.” The mods project - “New components for JavaFX or enhancements to existing JavaFX functionality” - was created several years ago, but recently got some threading fixes, improved string sorting and usage information in the readme.
- Florian Enner published the article behind the video we linked last week : JavaFX 27 as a GraalVM Native Image on a Raspberry Pi 5 . It compares Gluon Substrate (still on GraalVM 23 CE and JavaFX 21), BellSoft’s Liberica NIK, and his own StaticFX , which “runs as a regular GraalVM Feature on the stock toolchain” and keeps all JavaFX modules working, including Media and Web. For the AtlantaFX Sampler on a Raspberry Pi 5, the time to the first window drops from 3.6s with jlink to 0.5s, and memory use after visiting all pages from 1,424 MB to 634 MB, in a binary of about 33 MB. The missing reachability metadata remains the biggest hurdle, “but IMO the payoff is worth pushing through the initial barrier.”
- Dirk Lemmermann released GemsFX 4.5.0
:
DialogPanegains a cancellable dialog feature so dialogs can be closed with the ESC key or a dedicated cancel button, the busy button was removed fromPowerPaneAppto streamline the dialog options, andSVGUtilnow uses a default loader context with jsvg updated to 2.2.0. Project on GitHub . - mkpaz released AtlantaFX 3.0.0 , a major update to the JavaFX theme collection: adds window decorations, a Scene Builder plugin, a theme manager, and a new Sidebar component. See the release and changelog .
- The Techsenger team introduced PatternFX on Reddit : a framework providing MVC, MVP, and MVVM templates sharing a common architectural foundation. It models a window as a tree of dynamically composable components, each built with one of the three templates, and organizes inter-component communication through type-safe “ports” instead of a bus. Other features include component lifecycle support, component inheritance, history preservation, component-level logging, and an FXML-free design, with a demo implementing the same example in all three templates. Their ShellFX platform is built on top of it.
Podcasts, Videos, Books
- Josh Long published two videos
on combining Spring Boot, JavaFX, GraalVM native images and Spring Security to build desktop applications: “native, lightning-fast, dynamic, efficient, reusable desktop applications that run well on Mac, Windows, and Linux, and look amazing, while taking small fractions of the RAM of a similar Electron-based application”. Also mentioned in This Week in Spring, September 8th, 2026
.
- The Ultimate Desktop Client Stack: Building High-Performance Apps with Spring Boot & JavaFX shows how to use Spring Boot and JavaFX together, “so that you get the component model, event dispatch subsystem, internationalization, lifecycle management, and, of course, the entire and very rich ecosystem of Spring components and can use them to manage JavaFX components, too”, and ends with native image compilation.
- Build Secure Desktop Apps with JavaFX, Spring Boot & PKCE OAuth 2.0 looks at using Spring Security’s OAuth client in the context of a desktop application, “which can not, by definition, hold a client secret”.
- Florian Enner published a short video, JavaFX 27 Native Image running AtlantaFX Sampler on Raspberry Pi 5 , showing the AtlantaFX Sampler - which uses all controls and nearly all features JavaFX offers - as an ahead-of-time (AOT) compiled JavaFX 27 Native Image created with the latest Oracle GraalVM 25.3: “Everything works, including javafx.media, javafx.web, as well as the desktop integration to open files.” The native image is built with his jfx-static-feature , a GraalVM Feature that statically links the JavaFX native code into a standalone executable, with support for rich text, WebView and media on Windows, Linux and macOS, on both Intel and ARM.
- Artistic_Solution117 shared a video of a “Second test of Java-EARTH-GLOBE-1. Pure JavaFX Google Earth / Nasa Worldwind like viewer in a single shot. On-the-fly on the JVM were the agent runs. Built with gemini 3.8 flash with 24-core raytracing and local disk caching”.
- Chad Preisler shared a demo video of a pure JavaFX Kafka client : “Check out my Pure #JavaFX Kafka Client application. This project has come a long way since I first showed it. I find it incredibly useful. I hope you like it.” The Visual Kafka (VK) Demo walks through the result on the Chad Preisler YouTube channel. We linked a very early version of this, then still “a very basic Kafka topic viewer”, back in February 2023 .
Tutorials
- Creating a Simple 3D Platformer Game Using JavaFX is a step-by-step guide by the RottenWiFi Team that builds a playable 3D platformer prototype with a player character, multiple platforms, gravity, WASD movement and jumping, axis-aligned bounding-box collision detection, respawning after a fall, and a goal platform. It starts from a Maven setup and camera configuration and works through frame-rate-independent movement and per-axis collision resolution. The focus is on the fundamentals — scene graphs, coordinate systems and physics — rather than on production tooling, as “JavaFX is a framework for desktop applications with 3D graphics features, not a complete commercial game engine”.
Miscellaneous
- Nirvex1 is looking for advice on Reddit
while building a desktop Talent Acquisition System with Java 11, JavaFX, Maven, Hibernate and MariaDB: “One of the more challenging parts so far has been managing around 17 different FXML views and connecting all of them properly with their controllers. I also had to spend quite a bit of time understanding
module-info.java, resource paths, and how everything fits together in a modular JavaFX application. Thankfully, that part is finally stable.” The questions are about Hibernate session management andLazyInitializationException, how to run database queries without freezing the UI, and which threading patterns and architectural choices keep a large multi-view JavaFX application maintainable. The first answers mostly argue for putting a backend service between the desktop client and the database instead of connecting to it directly. - enthalpyzx started a discussion on Reddit , “How can JavaFX attract more developers?”, from the perspective of someone who hasn’t written a JavaFX application yet but likes what they see: “I’ve noticed that JavaFX is very capable of doing incredible things that I had never imagined.” The open questions are how multiplatform JavaFX really is, whether applications can look native on every desktop (with AtlantaFX mentioned as the likely answer, next to wrappers like Java-GI and QtJambi), why things like tray icons and notifications still need AWT, and above all the lack of a single recommended way of working: “I would like Gluon or Oracle to stand up and say: look, this is how things work now, this is how you work for desktop apps, this is how you work for mobile apps, this is the library you have to use.” Also asked: are The Definitive Guide to Modern Java Clients with JavaFX and Learn JavaFX 17 a good starting point?
- indyjoe asked on Reddit for good options to run JavaFX in the browser with minimal rewriting, still allowing a desktop version, supporting a large per-client data model, and scaling to hundreds of concurrent users. The discussion weighs WebFX (promising but limited control support and mostly a one-person project), CheerpJ (good for AWT/Swing, no timeline for JavaFX), Gluon (an old prototype not being updated without funded support), JPro (server-side rendering, a concern for apps with large per-user data), and whether a GraalVM-to-WASM path is even possible.
JFX Central
- The JavaFX Links Of The Week of August got bundled and published on Foojay.io .
- New content on JFX Central:
- People: Josh Long
- Videos by Josh:
- Tutorials based on these videos: