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 25.0.2 release. JavaFX 25.0.2 is the initial release of Oracle JavaFX 25.

Supported Runtimes

JavaFX 25 is designed to work with JDK 25.

Supported Platforms

JavaFX 25 is available for Linux x86_64, Windows x86_64, macOS AArch64, and macOS x86_64.

JavaFX 25.0.2 (GA)

List of Enhancements

# Link Area Summary
1 JDK-8271024 javafx/graphics Implement macOS Metal Rendering Pipeline

List of Fixes

# Link Area Summary
1 JDK-8378507 javafx/accessibility JavaFX CSS Reference skips heading levels: <h2> followed by <h4>
2 JDK-8378366 javafx/accessibility Accessibility issues in CSS Reference Guide and Introduction to FXML
3 JDK-8372453 javafx/window-toolkit [macOS] Iconifying owner may not iconify owned window
4 JDK-8371052 javafx/media Update libFFI to 3.5.2
5 JDK-8370632 javafx/web Additional libxslt 1.1.43 fixes
6 JDK-8368879 javafx/graphics Intermittent crash on exit when disposing MTLRTTextureData
7 JDK-8368691 javafx/web Update libxml2 to 2.14.6
8 JDK-8368631 javafx/graphics Avoid updating disposed MTLTexture
9 JDK-8368166 javafx/graphics Media query should accept multiple rules
10 JDK-8368021 javafx/window-toolkit Window buttons of extended RTL stage are on the wrong side
11 JDK-8367602 javafx/controls Regression: TabPane with wrapped label calculates wrong initial size
12 JDK-8367578 javafx/web Additional WebKit 622.1 fixes from WebKitGTK 2.48.7
13 JDK-8367370 javafx/window-toolkit Accent color platform preference not updating in macOS 26 (Tahoe)
14 JDK-8366744 javafx/web Update SQLite to 3.50.4
15 JDK-8366217 javafx/media Update GStreamer to 1.26.5
16 JDK-8361644 javafx/web Update ICU4C to 77.1
17 JDK-8350479 javafx/window-toolkit SW pipeline should use default pipeline in Glass
18 JDK-8335748 javafx/graphics Rippling of frame on scrolling

OpenJFX 25.0.1

These release notes refer to the OpenJFX 25.0.1. There is no equivalent JavaFX 25.0.1.

List of Fixes

# Link Area Summary
1 JDK-8361648 javafx/media Update Glib to 2.84.3
2 JDK-8360270 javafx/web Websocket communication issues with Vaadin applications through webview
3 JDK-8356982 javafx/web Update WebKit to 622.1
4 JDK-8328684 javafx/web HellowWebView demo crashes when a webpage is scrolled

OpenJFX 25

These release notes refer to the OpenJFX 25. There is no equivalent JavaFX 25.

Important Changes

  • javafx/build

    • JavaFX 25 Requires JDK 23 or Later (JDK-8359387)

      JavaFX 25 is compiled with --release 23 and thus requires JDK 23 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.

  • javafx/graphics

    • JavaFX Applications No Longer Need --sun-misc-unsafe-memory-access=allow (JDK-8334137)

      It is no longer necessary to pass --sun-misc-unsafe-memory-access=allow to java on the command line when running JavaFX applications. The bug that formerly caused this option to be needed has been fixed.

  • javafx/window-toolkit

    • JavaFX Requires GTK 3.20 or Later on Linux (JDK-8359396)

      On Linux platforms, JavaFX requires GTK3 version 3.20 or later. An exception will be thrown when initializing the JavaFX runtime if the GTK 3 library cannot be loaded or is older than 3.20.

Removed Features and Options

  • javafx/graphics

    • A Deprecated TransitionEvent Constructor Has Been Removed (JDK-8353617)

      The TransitionEvent(EventType, StyleableProperty, Duration) constructor was deprecated for removal in JavaFX 24 and has now been removed. Application developers should use TransitionEvent(EventType, StyleableProperty, String, Duration) instead.

List of New Features

# Link Area Summary
1 JDK-8355774 javafx/controls RichTextArea: provide mechanism for CSS styling of highlights
2 JDK-8357594

javafx/controls

Additional geometry-based Text/TextFlow APIs
3 JDK-8313424 javafx/graphics JavaFX controls in the title bar (Preview)
4 JDK-8314482 javafx/graphics TextFlow: TabStopPolicy
5 JDK-8341670 javafx/graphics [Text,TextFlow] Public API for Text Layout Info
6 JDK-8345348 javafx/graphics CSS media feature queries

List of Other Enhancements

# Link Area Summary
1 JDK-8313556

javafx/accessibility

Create implementation of NSAccessibilitySlider protocol
2 JDK-8313558 javafx/accessibility Create implementation of NSAccessibilityStepper protocol
3 JDK-8350316 javafx/accessibility Create implementation of NSAccessibilityProgressIndicator protocol
4 JDK-8351773 javafx/accessibility Create implementation of NSAccessibilityGroup protocol
5 JDK-8356983 javafx/accessibility Create implementation of NSAccessibilityImage protocol
6 JDK-8359257 javafx/accessibility Create accessibility protocol for TabGroup component
7 JDK-8361379 javafx/accessibility [macos] Refactor accessibility code to retrieve attribute by name
8 JDK-8335547 javafx/controls Support multi-line prompt text for TextArea
9 JDK-8358255 javafx/graphics Factor out boilerplate code of EventHandler properties in Scene and Window
10 JDK-8337960 javafx/media Improve performance of mfwrapper by reusing GStreamer media buffers for decoded video
11 JDK-8349373 javafx/other Support JavaFX preview features

List of Fixes

# Link Area Summary
1 JDK-8357157 javafx/animation Exception thrown from AnimationTimer freezes application
2 JDK-8170720 javafx/base VetoableListDecorator: Indexes to remove are not aggregated
3 JDK-8233179 javafx/base VetoableListDecorator#sort throws IllegalArgumentException "duplicate children"
4 JDK-8347753 javafx/base VetoableListDecorator doesn't accept its own sublists for bulk operations
5 JDK-8351038 javafx/base ConcurrentModificationException in EventType constructor
6 JDK-8351276 javafx/base Prevent redundant computeValue calls when a chain of mappings becomes observed
7 JDK-8358770 javafx/build incubator.richtext pom missing dependency on incubator.input
8 JDK-8361713 javafx/build JavaFX API docs overview is missing an intro section
9 JDK-8089080 javafx/controls [TextArea] Caret disappear after pressing backspace to clear the content
10 JDK-8185887 javafx/controls TableRowSkinBase fails to correctly virtualize cells in horizontal direction
11 JDK-8207333 javafx/controls [Linux, macOS] Column sorting is triggered always after context menu request on table header
12 JDK-8252566 javafx/controls TreeTableView: broken row layout for fixedCellSize
13 JDK-8276326 javafx/controls Empty Cells in TableView supposedly after using setFixedCellSize()
14 JDK-8277000 javafx/controls Tree-/TableRowSkin: replace listener to fixedCellSize by live lookup
15 JDK-8299753 javafx/controls Tree/TableView: Column Resizing With Fractional Scale
16 JDK-8299755 javafx/controls Tree/TableView: Cursor Decouples From Divider When Resizing With Fractional Scale
17 JDK-8333275 javafx/controls ComboBox: adding an item from editor changes editor text
18 JDK-8335587 javafx/controls TextInputControl: Binding prompt text that contains linebreak causes exception
19 JDK-8340344 javafx/controls The first item in TreeView is not aligned in the beginning
20 JDK-8341281 javafx/controls Root TreeItem with null value breaks TreeTableView
21 JDK-8346824 javafx/controls Collapsing tree view causes rendering issues
22 JDK-8347392 javafx/controls Thread-unsafe implementation of c.s.j.scene.control.skin.Utils
23 JDK-8348100 javafx/controls Tooltips cannot be instantiated on background thread
24 JDK-8349091 javafx/controls Charts: exception initializing in a background thread
25 JDK-8349098 javafx/controls TabPane: exception initializing in a background thread
26 JDK-8349105 javafx/controls Pagination: exception initializing in a background thread
27 JDK-8349255 javafx/controls TitledPane: exception initializing in a background thread
28 JDK-8349756 javafx/controls Memory leak in PaginationSkin when setting page count / index
29 JDK-8349758 javafx/controls Memory leak in TreeTableView
30 JDK-8350976 javafx/controls MenuBarSkin: exception initializing in a background thread
31 JDK-8351047 javafx/controls TitledPane should handle titles that are resizable
32 JDK-8351368 javafx/controls RichTextArea: exception pasting from Word
33 JDK-8351878 javafx/controls RichTextArea: copy/paste issues
34 JDK-8355012 javafx/controls JavaFX modena.css -fx-highlight-text-fill bug
35 JDK-8355415 javafx/controls RichTextArea: NPE in VFlow::scrollCaretToVisible
36 JDK-8355615 javafx/controls ConcurrentModificationException creating MenuBar on background thread
37 JDK-8357393 javafx/controls RichTextArea: fails to properly save text attributes
38 JDK-8364049 javafx/controls ToolBar shows overflow menu with fractional scale
39 JDK-8364088 javafx/controls ToolBarSkin: NPE in select()
40 JDK-8281384 javafx/graphics Random chars on paste from Windows clipboard
41 JDK-8318985 javafx/graphics [macos] Incorrect 3D lighting on macOS 14 and later
42 JDK-8342530 javafx/graphics Specifying "@Nx" scaling level in ImageStorage should only load that specific level
43 JDK-8349256 javafx/graphics Update PipeWire to 1.3.81
44 JDK-8350149 javafx/graphics VBox ignores bias of child controls when fillWidth is set to false
45 JDK-8351067 javafx/graphics Enforce Platform threading use
46 JDK-8351867 javafx/graphics No UI changes while iconified
47 JDK-8353632 javafx/graphics [Linux] Undefined reference to PlatformSupport::OBSERVED_SETTINGS with C++14
48 JDK-8353845 javafx/graphics com.sun.javafx.css.BitSet.equals(null) throws NPE
49 JDK-8354797 javafx/graphics Parent.needsLayoutProperty() should return read-only getter
50 JDK-8354813 javafx/graphics Parent.isNeedsLayout() may return wrong value in property listener
51 JDK-8357004 javafx/graphics Windows platform color changes are not picked up in some cases
52 JDK-8358454 javafx/graphics Wrong <br> tags in cssref.html
53 JDK-8329227 javafx/media Seek might hang with fMP4 H.265/HEVC or H.265/HEVC over HTTP/FILE
54 JDK-8357714 javafx/media AudioClip.play crash on macOS when loading resource from jar
55 JDK-8088343 javafx/other Race condition in javafx.concurrent.Task::cancel
56 JDK-8350048 javafx/other Enforce threading restrictions for show and hide methods in Window, Control, and Skin
57 JDK-8245602 javafx/samples Ensemble8: HTMLEditor Toolbar gets scrolled out of view
58 JDK-8146479 javafx/scenegraph Scene is black after stage is restored (content changed while minimized)
59 JDK-8340322 javafx/web Update WebKit to 620.1
60 JDK-8352162 javafx/web Update libxml2 to 2.13.8
61 JDK-8352164 javafx/web Update libxslt to 1.1.43
62 JDK-8354876 javafx/web Update SQLite to 3.49.1
63 JDK-8354940 javafx/web Fail to sign in to Microsoft sites with WebView
64 JDK-8176813 javafx/window-toolkit Mac: Failure to exit full-screen programmatically in some cases
65 JDK-8348095 javafx/window-toolkit [Linux] Menu shows up in wrong position when using i3 windows manager in full screen mode
66 JDK-8351733 javafx/window-toolkit Crash when creating too many nested event loops
67 JDK-8353314 javafx/window-toolkit macOS: Inconsistent fullscreen behavior
68 JDK-8353548 javafx/window-toolkit [macOS] DragEvent.getScreenY() returns incorrect value in secondary monitor
69 JDK-8354478 javafx/window-toolkit Improve StageStyle documentation
70 JDK-8354631 javafx/window-toolkit [macos] OpenURIHandler events not received by AWT when JavaFX is primary toolkit
71 JDK-8356652 javafx/window-toolkit Input field ignores custom input source characters
72 JDK-8357584 javafx/window-toolkit [XWayland] [OL10] Robot.mousePress() is delivered to wrong place
73 JDK-8363813 javafx/window-toolkit Missing null check in GlassScreen