← JavaFX

OpenJFX 20 Release Notes

Released versions

VersionRelease dateRelease notes
20.0.2July 18, 2023release notes
20.0.1April 19, 2023release notes
20March 18, 2023release notes

Release Notes for JavaFX 20.0.2

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8301009Update libxml2 to 2.10.3web
JDK-8306115Update libxml2 to 2.10.4web

List of Security Fixes

Issue keySummarySubcomponent
JDK-8304751 (not public)Improve pipeline layoutgraphics

Release Notes for JavaFX 20.0.1

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8299977Update WebKit to 615.1web
JDK-8300954HTML default Range input control not renderedweb
JDK-8301022Video distortion is observed while playing youtube videoweb
JDK-8301712[linux] Crash on exit from WebKit 615.1web
JDK-8302294Cherry-pick WebKit 615.1 stabilization fixesweb
JDK-8302684Cherry-pick WebKit 615.1 stabilization fixes (2)web
JDK-8303217Webview loaded webpage is not showing play, volume related buttons for embeded Audio/Video elementsweb

List of Security Fixes

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

Release Notes for JavaFX 20

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 20 release. JavaFX 20 requires JDK 17 or later.

Important Changes

JavaFX 20 Requires JDK 17 or Later

JavaFX 20 is compiled with --release 17 and thus requires JDK 17 or later in order to run. If you attempt to run with an older JDK, the Java launcher will exit with an error message indicating that the javafx.base module cannot be read.

See JDK-8290530 for more information.

FXML JavaScript Engine Disabled by Default

The “JavaScript script engine” for FXML is now disabled by default. Any .fxml file that has a “javascript” Processing Instruction (PI) will no longer load by default, and an exception will be thrown.

If the JDK has a JavaScript script engine, it can be enabled by setting the system property:

-Djavafx.allowjs=true

List of Enhancements

Issue keySummarySubcomponent
JDK-8293839Documentation memory consistency effects of runLaterapplication-lifecycle
JDK-8290040Provide simplified deterministic way to manage listenersbase
JDK-8290530Bump minimum JDK version for JavaFX to JDK 17build
JDK-8290844Add Skin.install() methodcontrols
JDK-8294809ListenerHelper for managing and disconnecting listenerscontrols
JDK-8287604Update MarlinFX to 0.9.4.6graphics
JDK-8287822[macos] Remove support of duplicated formats from macOSmedia
JDK-8293119Additional constrained resize policies for Tree/TableViewother

List of Fixed Bugs

Issue keySummarySubcomponent
JDK-8087557[Win] [Accessibility, Dialogs] Alert Dialog content is not fully read by Screen Readeraccessibility
JDK-8284281[Accessibility] [Win] [Narrator] Exceptions with TextArea & TextField when deleted last characcessibility
JDK-8291087Wrong position of focus of screen reader on Windows with screen scale > 1accessibility
JDK-8293795[Accessibility] [Win] [Narrator] Exceptions When Deleting Text with Continuous Key Press in TextArea and TextFieldaccessibility
JDK-8243115Spurious invalidations due to bug in IntegerBinding and other classesbase
JDK-8087673[TableView] TableView and TreeTableView menu button overlaps columns when using a constrained resize policy.controls
JDK-8089009TableView with CONSTRAINED_RESIZE_POLICY incorrectly displays a horizontal scroll bar.controls
JDK-8089280horizontal scrollbar should never become visible in TableView with constrained resize policycontrols
JDK-8187145(Tree)TableView with null selectionModel: throws NPE on sortingcontrols
JDK-8190411NPE in SliderSkin:140 if Slider.Tooltip.autohide is truecontrols
JDK-8209017CheckBoxTreeCell: graphic on TreeItem not always showingcontrols
JDK-8216507StyleablePropertyFactory: example in class javadoc does not compilecontrols
JDK-8218826TableRowSkinBase: horizontal layout broken if row has paddingcontrols
JDK-8235491Tree/TableView: implementation of isSelected(int) violates contractcontrols
JDK-8245145Spinner: throws IllegalArgumentException when replacing skincontrols
JDK-8252863Spinner keeps spinning if removed from Scenecontrols
JDK-8254676Alert disables Tab selection when TabDragPolicy REORDER is usedcontrols
JDK-8256397MultipleSelectionModel throws IndexOutOfBoundExceptioncontrols
JDK-8268877TextInputControlSkin: incorrect inputMethod event handler after switching skincontrols
JDK-8279514NPE on clearing value of IntegerSpinnerValueFactorycontrols
JDK-8279640ListView with null SelectionModel/FocusModel throws NPEcontrols
JDK-8289357(Tree)TableView is null in (Tree)TableRowSkin during autosizecontrols
JDK-8290863Update the documentation of Virtualized controls to include the best practice of not using Nodes directly in the item listcontrols
JDK-8291625DialogPane without header nor headerText nor graphic node adds padding to the left of the content panecontrols
JDK-8291853[CSS] ClassCastException in CssStyleHelper calculateValuecontrols
JDK-8291908VirtualFlow creates unneeded empty cellscontrols
JDK-8292009Wrong text artifacts in table headercontrols
JDK-8292353TableRow vs. TreeTableRow: inconsistent visuals in cell selection modecontrols
JDK-8293171Minor typographical errors in JavaDoc javafx.scene.control.ScrollPane.javacontrols
JDK-8293444Creating ScrollPane with same content component causes memory leakcontrols
JDK-8294589MenuBarSkin: memory leak when changing skincontrols
JDK-8295175SplitPaneSkin: memory leak when changing skincontrols
JDK-8295242ScrollBarSkin: memory leak when changing skincontrols
JDK-8295339DatePicker updates its value property with wrong date when dialog closescontrols
JDK-8295426MenuButtonSkin: memory leak when changing skincontrols
JDK-8295500AccordionSkin: memory leak when changing skincontrols
JDK-8295506ButtonBarSkin: memory leak when changing skincontrols
JDK-8295531ComboBoxBaseSkin: memory leak when changing skincontrols
JDK-8295754PaginationSkin: memory leak when changing skincontrols
JDK-8295796ScrollPaneSkin: memory leak when changing skincontrols
JDK-8295806TableViewSkin: memory leak when changing skincontrols
JDK-8295809TreeTableViewSkin: memory leak when changing skincontrols
JDK-8296409Multiple copies of accelerator change listeners are added to MenuItems, but only 1 is removedcontrols
JDK-8296413Tree/TableView with null focus model throws NPE in queryAccessibleAttribute()controls
JDK-8298728Cells in VirtualFlow jump after resizingcontrols
JDK-8181084JavaFX show big icons in system menu on macOS with Retina displaygraphics
JDK-8231864JavaFX Labels in Tab’s VBox is not displayed until it is clickedgraphics
JDK-8238968Inconsisent formatting of Rectangle2D toString methodgraphics
JDK-8265835Exception in Quantum due to null platformWindowgraphics
JDK-8271395Crash during printing when disposing texturesgraphics
JDK-8289542Update JPEG Image Decoding Software to 9egraphics
JDK-8290841Notify menu event after a long press gesture on Android is not dispatchedgraphics
JDK-8290990Clear .root style class from a root node that is removed from a Scene/SubScenegraphics
JDK-8295236Update JavaDoc in javafx.geometry.Point3Dgraphics
JDK-8295324JavaFX: Blank pages when printinggraphics
JDK-8295327JavaFX – IllegalArgumentException when printing with margins equal to 0graphics
JDK-8296854NULL check of CTFontCopyAvailableTables return value is requiredgraphics
JDK-8297554Remove Scene.KeyHandlergraphics
JDK-8297680JavaDoc example for PseudoClass has minor typographics
JDK-8293971Loading new Media from resources can sometimes fail when loading from FXMLmedia
JDK-8294400Provide media support for libavcodec version 59media
JDK-8297362EOS might not be delivered by progressbuffer in some casesmedia
JDK-8293587Fix mistakes in FX API docsother
JDK-8295962Reference to State in Task.java is ambiguous when building with JDK 19other
JDK-8303019cssref.html incorrect internal link in Pathother
JDK-8279214Memory leak in Scene after dragging a cellscenegraph
JDK-8297130ComboBox popup doesn’t close after selecting value that was added with ‘runLater’scenegraph
JDK-8300013Node.focusWithin doesn’t account for nested focused nodesscenegraph
JDK-8222210JFXPanel popups open at wrong coordinates when using multiple hidpi monitorsswing
JDK-8285881Update WebKit to 614.1web
JDK-8289541Update ICU4C to 71.1web
JDK-8292609Cherry-pick WebKit 614.1 stabilization fixesweb
JDK-8295755Update SQLite to 3.39.4web
JDK-8298167Opacity in WebView not working anymoreweb
JDK-8292922[Linux] No more drag events when new Stage is created in drag handlerwindow-toolkit
JDK-8296621Stage steals focus on scene changewindow-toolkit
JDK-8296654[macos] Crash when launching JavaFX app with JDK that targets SDK 13window-toolkit

List of Security fixes

Issue keySummarySubcomponent
JDK-8294779 (not public)Improve FX pagesfxml
JDK-8289336 (not public)Better platform image supportgraphics
JDK-8289343 (not public)Better GL supportgraphics
JDK-8299628 (not public)BMP top-down images fail to load after JDK-8289336graphics
JDK-8292097 (not public)Better video decodingmedia
JDK-8292105 (not public)Improve Robot functionalitywindow-toolkit
JDK-8292112 (not public)Better DragView handlingwindow-toolkit