← JavaFX

OpenJFX 21 Release Notes

Planned versions

VersionPlanned release date
21.0.12July 21, 2026
21.0.13October 20, 2026
21.0.14January 19, 2027
21.0.15April 20, 2027
21.0.16July 20, 2027
21.0.17October 19, 2027
21.0.18January 18, 2028

All planned release dates are informative. Contact us for a personalised quote for our JavaFX Long Term Support (LTS) service.

Released versions

VersionRelease dateRelease notes
21.0.11April 21, 2026release notes
21.0.10January 20, 2026release notes
21.0.9October 20, 2025release notes
21.0.8July 15, 2025release notes
21.0.7April 15, 2025release notes
21.0.6January 21, 2025release notes
21.0.5October 15, 2024release notes
21.0.4July 16, 2024release notes
21.0.3April 16, 2024release notes
21.0.2January 16, 2024release notes
21.0.1October 17, 2023release notes
21September 19, 2023release notes

Release Notes for JavaFX 21.0.11

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8376299[jfx21u] backported test requires more recent JDKbuild
JDK-8367578Additional WebKit 622.1 fixes from WebKitGTK 2.48.7web
JDK-8368572Update WebKit to 623.1web
JDK-8376282[linux, macos] JavaFX fails to build WebKit in DebugNativeweb
JDK-8377099Additional WebKit 623.1 fixes from WebKitGTK 2.50.4web
JDK-8377930Additional WebKit 623.1 fixes from WebKitGTK 2.50.5web
JDK-8380557Additional WebKit 623.1 fixes from WebKitGTK 2.50.6web

Release Notes for JavaFX 21.0.10

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8368691Update libxml2 to 2.14.6web
JDK-8370632Additional libxslt 1.1.43 fixesweb

List of Security fixes

Issue keySummarySubcomponent
JDK-8361719 (not public)Enhance Handling of URIsapplication-lifecycle
JDK-8362535 (not public)Update libxslt supportweb
JDK-8368704 (not public)Better glyph handlinggraphics

Release Notes for JavaFX 21.0.9

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8328684HellowWebView demo crashes when a webpage is scrolledweb
JDK-8356982Update WebKit to 622.1web
JDK-8360270Websocket communication issues with Vaadin applications through webviewweb

Release Notes for JavaFX 21.0.8

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8351038ConcurrentModificationException in EventType constructorbase
JDK-8352162Update libxml2 to 2.13.8web
JDK-8352164Update libxslt to 1.1.43web
JDK-8354876Update SQLite to 3.49.1web
JDK-8354940Fail to sign in to Microsoft sites with WebViewweb

Release Notes for JavaFX 21.0.7

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8336939Update Glib to 2.80.4media
JDK-8336940Update GStreamer to 1.24.6media
JDK-8346228Update GStreamer to 1.24.10media
JDK-8346229Update Glib to 2.82.4media
JDK-8323880Caret rendered at wrong position in case of a click event on RTL textweb
JDK-8340322Update WebKit to 620.1web
JDK-8349924Additional WebKit 620.1 fixes from WebKitGTK 2.46.6web

Release Notes for JavaFX 21.0.6

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8331616ChangeListener is not triggered when the InvalidationListener is removedbase
JDK-8333374Cannot invoke “com.sun.prism.RTTexture.contentsUseful()” because “this.txt” is nullgraphics
JDK-8318388Update libxslt to 1.1.39web
JDK-8334124Rendering issues with CSS “text-shadow” in WebViewweb
JDK-8336798DRT test cssrounding.html test for linear layout fails with WebKit 619.1web
JDK-8336941Update libxslt to 1.1.42web
JDK-8337481File API: file.name contains path instead of nameweb
JDK-8338306WebView Drag and Drop fails with WebKit 619.1web
JDK-8338307Additional WebKit 619.1 fixes from WebKitGTK 2.44.3web
JDK-8340208Additional WebKit 619.1 fixes from WebKitGTK 2.44.4web

List of Security fixes

Issue keySummarySubcomponent
JDK-8335714 (not public)Enhance playing MP3smedia
JDK-8335715 (not public)Improve Direct Show supportmedia

Release Notes for JavaFX 21.0.5

List of Enhancements

Issue keySummarySubcomponent
JDK-8334874Horizontal scroll events from touch pads should scroll the TabPane tabscontrols

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8323787Mac System MenuBar throws IOB exceptiongraphics
JDK-8328994Update WebKit to 619.1web
JDK-8329011Update SQLite to 3.45.3web
JDK-8331765Websocket callbacks are not executed after WebKit 617.1 updateweb
JDK-8334713WebKit build failed on LoongArch64 because currentStackPointer is undefinedweb
JDK-8318841macOS: Memory leak with MenuItem when Menu.useSystemMenuBar(true) is usedwindow-toolkit
JDK-8319779SystemMenu: memory leak due to listener never being removedwindow-toolkit

Release Notes for JavaFX 21.0.4

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8329705Add missing Application thread checks to platform specific a11y methodsaccessibility
JDK-8330462StringIndexOutOfBoundException when typing anything into TextFieldaccessibility
JDK-8331748Update libxml2 to 2.12.6web
JDK-8332539Update libxml2 to 2.12.7web

Release Notes for JavaFX 21.0.3

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8321970New table columns don’t appear when using fixed cell size unless refreshing tableViewcontrols
JDK-8325154resizeColumnToFitContent is slower than it needs to becontrols
JDK-8322795CSS performance regression up to 10xgraphics
JDK-8318614Update WebKit to 617.1web
JDK-8322703Intermittent crash in WebView in a JFXPanel from IME calls on macOSweb
JDK-8324337Cherry-pick WebKit 617.1 stabilization fixesweb
JDK-8325258Additional WebKit 617.1 fixes from WebKitGTK 2.42.5web
JDK-8326989Text selection issues on WebView after WebKit 617.1web
JDK-8327177macOS: wrong GlobalRef deleted in GlassMenuwindow-toolkit

List of Security fixes

Issue keySummarySubcomponent
JDK-8313040 (not public)Enhanced Font handlinggraphics
JDK-8313064 (not public)General enhancements of image handlinggraphics
JDK-8313072 (not public)Enhanced handling of Fontsgraphics
JDK-8322236 (not public)Build failure after JDK-8313064graphics
JDK-8313032 (not public)Enhanced handling of Glasswindow-toolkit
JDK-8320441 (not public)Additonal fix for JDK-8313032window-toolkit

Release Notes for JavaFX 21.0.2

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8317370JavaFX runtime version is wrong at runtimebase
JDK-8311185VirtualFlow jump when cellcount changescontrols
JDK-8307536FileAlreadyExistsException from NativeLibLoader when running concurrent applications with empty cachegraphics
JDK-8313648JavaFX application continues to show a black screen after graphic card driver crashgraphics
JDK-8319079Missing range checks in decoragraphics
JDK-8317508Provide media support for libavcodec version 60media
JDK-8318386Update Glib to 2.78.1media
JDK-8318387Update GStreamer to 1.22.6media
JDK-8320267WebView crashes on macOS 11 with WebKit 616.1web
JDK-8251240Menus inaccessible on Linux with i3 wmwindow-toolkit
JDK-8315074Possible null pointer access in native glasswindow-toolkit
JDK-8315958Missing range checks in GlassPasteboardwindow-toolkit
JDK-8319066Application window not always activated in macOS 14 Sonomawindow-toolkit
JDK-8319669[macos14] Running any JavaFX app prints Secure coding warningwindow-toolkit

List of Security fixes

Issue keySummarySubcomponent
JDK-8319669 (not public)Better Glyph handlinggraphics
JDK-8313105 (not public)Improved media framingmedia
JDK-8313056 (not public)General enhancements of Glasswindow-toolkit

Release Notes for JavaFX 21.0.1

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8313856Replace VLA with malloc in pangographics
JDK-8313900Possible NULL pointer access in NativeAudioSpectrum and NativeVideoBuffermedia
JDK-8310681Update WebKit to 616.1web
JDK-8311097Synchron XMLHttpRequest not receiving dataweb
JDK-8314212Crash when loading cnn.com in WebViewweb
JDK-8315657Application window not activated in macOS 14 Sonomawindow-toolkit

Release Notes for JavaFX 21

Introduction

The following notes describe important changes and information about this release. In some cases, the descriptions provide links to additional detailed information about an issue or a change.

These release notes cover the standalone JavaFX 21 release. JavaFX 21 requires JDK 17 or later.

Important Changes

JavaFX Requires macOS 11 or Later

On Mac platforms, JavaFX 21 requires macOS 11 or later. An exception will be thrown when initializing the JavaFX runtime on older versions of macOS.

See JDK-8308114 for more information.

JavaFX Requires GTK 3 on Linux

On Linux platforms, JavaFX 21 requires GTK3 version 3.8 or later. The JavaFX GTK2 library has been removed. An exception will be thrown when initializing the JavaFX runtime if the GTK 3 library cannot be loaded.

See JDK-8299595 for more information.

Return Type of javafx.css.Match::getPseudoClasses Changed

The return type of javafx.css.Match.getPseudoClasses has been changed to Set instead of a non-public type. Most applications will not be impacted by this change, since this is not a method that applications ever need to call. In the unlikely event that an existing application binary does call this method, a NoSuchMethodError will be thrown. The solution is to recompile the application.

See JDK-8304959 for more information.

Event Handler Methods Added to EventTarget Interface

Four new default methods were added to the javafx.event.EventTarget interface:

  • void addEventHandler(EventType, EventHandler)
  • void removeEventHandler(EventType, EventHandler)
  • void addEventFilter(EventType, EventHandler)
  • void removeEventFilter(EventType, EventHandler)

This change allows applications to manage event handlers for all EventTarget implementations.

Most applications will not run into any backward compatibility problems with this change. The change is fully binary compatible and, for most use cases, it is also source compatible.

A compilation error will occur in one of the following two unlikely cases:

  • An application class extends Menu, MenuItem, TableColumnBase, or TreeItem, and overrides addEventHandler or removeEventHandler
  • An application class that is not a subclass of Node implements their own addEventHandler or removeEventHandler using a signature other than that of the newly added methods (for example, copying the same incorrect pattern that MenuItem used prior to this release)

In these cases, the declared methods must be changed to conform to the updated interface method signature.

See JDK-8306021 for more information.

List of Enhancements

Issue keySummarySubcomponent
JDK-8284542[Win] Missing attribute for toggle state of CheckBox in CheckBoxTreeItemaccessibility
JDK-8301312Create implementation of NSAccessibilityButton protocolaccessibility
JDK-8283063Optimize Observable{List/Set/Map}Wrapper.retainAll/removeAllbase
JDK-8304439Subscription based listenersbase
JDK-8304960ObservableListBase should defer constructing ListChangeBuilderbase
JDK-8305885Use ReadOnly*PropertyBase class where possiblebase
JDK-8306021Add event handler management to EventTargetbase
JDK-8090647Mnemonics : on windows we should cancel the underscore latch when an app loses focus.controls
JDK-8091153Customize the Table Button Menucontrols
JDK-8091419TableView: invoke table menu button programmaticallycontrols
JDK-8307960Create Table Column PopupMenu lazilycontrols
JDK-8309470Potential performance improvements in VirtualFlowcontrols
JDK-8290765Remove parent disabled/treeVisible listenersgraphics
JDK-8307363TextFlow.underlineShape()graphics
JDK-8299756Minor updates in CSS Referenceother
JDK-8306648Update the JavaDocs to show the NEW section and DEPRECATED versionsother
JDK-8307208Add GridPane constructor that accepts hGap and vGap valuesscenegraph
JDK-8260528Clean glass-gtk sizing and positioning codewindow-toolkit
JDK-8299595Remove terminally deprecated JavaFX GTK 2 librarywindow-toolkit
JDK-8302355Public API for Toolkit.canStartNestedEventLoop()window-toolkit

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8284662[Win] Screen reader fails to read ListView/ComboBox item count if > 100accessibility
JDK-8298382JavaFX ChartArea Accessibility Readeraccessibility
JDK-8308191[macOS] VoiceOver decorations are shifted on second monitoraccessibility
JDK-8224260ChangeListener not triggered when adding a new listener in invalidated methodbase
JDK-8303740JavaFX – Leak in Logging, Logging remembers last exceptionbase
JDK-8303897ObservableValue’s when binding should only invalidate when strictly neededbase
JDK-8308114Bump minimum version of macOS for x64 to 11.0 (matching aarch64)build
JDK-8088594NullPointerException on showing submenu of a contextmenucontrols
JDK-8088998XYChart: duplicate child added exception when remove & add a series in several chartscontrols
JDK-8090123Items are no longer visible when collection is changedcontrols
JDK-8137244Empty Tree/TableView with CONSTRAINED_RESIZE_POLICY is not properly resizedcontrols
JDK-8138842TableViewSelectionModel.selectIndices does not select index 0controls
JDK-8154038Spinner’s converter should update its editorcontrols
JDK-8172849Non-intuitive baseline alignment for labeled controls with graphicscontrols
JDK-8173321TableView: Click on right trough has no effect when cell height is higher than viewport heightcontrols
JDK-8178368Right alignment of text fields and alignment of prompt text works incorrectlycontrols
JDK-8230833LabeledSkinBase computes wrong height with ContentDisplay.GRAPHIC_ONLYcontrols
JDK-8237505RadioMenuItem in ToggleGroup: deselected on acceleratorcontrols
JDK-8245919Region#padding property rendering errorcontrols
JDK-8283551ControlAcceleratorSupport menu items listener causes memory leakcontrols
JDK-8293836Rendering performance degradation at bottom of TableView with many rowscontrols
JDK-8299986Wrong sublist used in ListChangeListenercontrols
JDK-8300893Wrong state after deselecting two or more cells of a TableView selectioncontrols
JDK-8303026[TextField] IOOBE on setting text with control characters that replaces existing textcontrols
JDK-8303680Virtual Flow freezes after calling scrollTo and scrollPixels in successioncontrols
JDK-8305248TableView not rendered correctly after column is made visible if fixed cell size is setcontrols
JDK-8306447Adding an element to a long existing list may cause the first visible element to jumpcontrols
JDK-8307538Memory leak in TreeTableView when calling refreshcontrols
JDK-8310638Filtering a TableView with a large number of items freezes the UIcontrols
JDK-8311127Regression: The fix for TableView and TreeTableView menu button affects all table column headerscontrols
JDK-8233955VM crashes if more than one file are added to ClipboardContent via drag and dropgraphics
JDK-8246104Some complex text doesn’t render correctly on macOSgraphics
JDK-8251862Wrong position of Popup windows at the intersection of 2 screensgraphics
JDK-8281327JavaFX does not support fonts installed per-user on Windows 10/11graphics
JDK-8290092Temporary files are kept when call Clipboard.getSystemClipboard().getImage()graphics
JDK-8290866Apple Color Emoji turns gray after JavaFX version 18graphics
JDK-8295078TextField blurry when inside an TitledPane -> AnchorPanegraphics
JDK-8299968Second call to Stage.setScene() create sizing issue with uiScale > 1.0graphics
JDK-8300872WebView’s ColorChooser fails to initialize when running in security contextgraphics
JDK-8302511HitInfo.toString() throws IllegalArgumentExceptiongraphics
JDK-8302797ArrayIndexOutOfBoundsException in TextRun.getWrapIndex()graphics
JDK-8304831TextFlow.hitTest.insertionIndex incorrect with surrogate pairsgraphics
JDK-8306708Region.layoutInArea uses incorrect snap scale valuegraphics
JDK-8306990The guarantees given by Region’s floor and ceiling functions should work for larger valuesgraphics
JDK-8307542Call to FcConfigAppFontAddFile uses wrong prototype, argumentsgraphics
JDK-8309508Possible memory leak in JPEG image loadergraphics
JDK-8309935Mac – SystemMenuBar, IndexOutOfBoundsException on changegraphics
JDK-8304290Some JNI calls made without checking exceptions in mediamedia
JDK-8306328Update libFFI to 3.4.4media
JDK-8194704Text/TextFlow hitTest() javadocscenegraph
JDK-8301763Adding children to wrong index leaves inconsistent state in Parent#childrenSetscenegraph
JDK-8304933BitSet (used for CSS pseudo class states) listener management is incorrectscenegraph
JDK-8304959Public API in javafx.css.Match should not return private API class PseudoClassStatescenegraph
JDK-8231865JFXPanel sends resize event with size 0x0 on HiDPI devicesswing
JDK-8242419JFXPanel: MouseEvent always reports that Primary button changed state if heldswing
JDK-8299977Update WebKit to 615.1web
JDK-8306115Update libxml2 to 2.10.4web
JDK-8306329Update ICU4C to 73.1web
JDK-8150709Mac OSX and German Keyboard Layout (Y/Z)window-toolkit
JDK-8275033Drag and drop a file produces NullPointerException Cannot read field “dragboard”window-toolkit
JDK-8278938[Win] Robot can target wrong key for punctuation and symbolswindow-toolkit
JDK-8299348Size-restricted window can be observed with incorrect dimensionswindow-toolkit
JDK-8304441[macos] Crash when putting invalid unicode char on clipboardwindow-toolkit
JDK-8306121Scene not rendered initially when changing scenes after fix for JDK-8296621window-toolkit

List of Security fixes

Issue keySummarySubcomponent
JDK-8304751 (not public)Improve pipeline layoutgraphics
JDK-8299781 (not public)Improve JFX navigationweb
JDK-8303501 (not public)Unable to navigate to relative URLs after fix for JDK-8299781web