|
| 1 | +--- |
| 2 | +title: "JavaFX 23 Highlights" |
| 3 | +section: "highlights" |
| 4 | +styleclass: "content" |
| 5 | +--- |
| 6 | +# JavaFX 23 Highlights |
| 7 | + |
| 8 | +JavaFX version 23 has been released. We've tailored down some of the most exciting parts of the release in this document. |
| 9 | + |
| 10 | +### JavaFX 23 Requires JDK 21 or later |
| 11 | + |
| 12 | +JavaFX 23 is compiled with `--release 21` and thus requires JDK 21 or later in order to run. |
| 13 | +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. |
| 14 | + |
| 15 | +See [JDK-8321603](https://bugs.openjdk.org/browse/JDK-8321603) for more information. |
| 16 | + |
| 17 | +### Clicking on the Scrollbar Track of Virtualized Controls Scrolls by Viewport Length |
| 18 | + |
| 19 | +Clicking on the scrollbar track of virtualized controls, such as `ListView`, `TreeView`, `TableView`, and `TreeTableView`, |
| 20 | +now scrolls by the viewport length rather than the length of the empty cell. |
| 21 | +Furthermore, cells are no longer aligned to the top or bottom of the viewport after scrolling. |
| 22 | + |
| 23 | +See [JDK-8323511](https://bugs.openjdk.org/browse/JDK-8323511) for more information. |
| 24 | + |
| 25 | +### Keyboard Scrolling in Virtualized Controls |
| 26 | + |
| 27 | +Keyboard scrolling key bindings, `alt-ctrl-arrows` (`option-command-arrows` on macOS), |
| 28 | +have been added to virtualized controls such as `ListView`, `TreeView`, `TableView`, and `TreeTableView` to improve accessibility. |
| 29 | + |
| 30 | +See [JDK-8313138](https://bugs.openjdk.org/browse/JDK-8313138) for more information. |
| 31 | + |
| 32 | +Exciting features: |
| 33 | +- New APIs: |
| 34 | + - Labeled control now has `textTruncated` property which indicates when the text is visually truncated in order to fit the available width |
| 35 | + |
| 36 | +- New Features: |
| 37 | + - CSS Transition support in JavaFX, making it easy to define animated transitions for creating rich and fluid user experiences |
| 38 | + - Support "@3x" and greater high-density image naming convention |
| 39 | + - Add support for EXT-X-MEDIA tag in HTTP Live Streaming |
| 40 | + |
| 41 | +Improvements: |
| 42 | +- JavaFX CSS has been receiving multiple performance improvements. |
| 43 | +In JavaFX 22 highlights, we talked about performance improvements for css rendering. |
| 44 | +JavaFX 23 has performance improvements for CSS selector matching |
| 45 | + |
| 46 | +The community came together to fix 81 bugs in the last 6 months. Following are major bug-fixes that went into JavaFX 23: |
| 47 | + |
| 48 | +- Fix for scrolling failure on a touch enabled display on Wayland |
| 49 | +- Fix for ConcurrentModificationException in MediaPlayer which can lead to application crashes or unexpected behavior in media application |
| 50 | +- Fix HLS video stream to render consistently |
| 51 | +- Fix for `KeyEvent.getCode()` is `null` inside JFXPanel, affecting Swing/JavaFX integration |
| 52 | + |
| 53 | +Finally, these are some dependency upgrades in JavaFX 23: |
| 54 | +- Upgraded WebKit to 617.1 |
| 55 | +- Upgraded ICU4C to 74.2 |
| 56 | +- Upgraded SQLite to 3.45.3 |
| 57 | +- Upgraded libxml2 to 2.12.7 |
| 58 | + |
| 59 | + |
| 60 | +A more comprehensive list of all the changes in JavaFX 23 can be found on [Github](https://github.com/openjdk/jfx/blob/jfx23/doc-files/release-notes-23.md). |
| 61 | + |
| 62 | +Kudos go to the fine people at [Gluon](https://gluonhq.com) who took care of the bulk of the work on JavaFX 23. Do check their [JavaFX Long Term Support](https://gluonhq.com/services/javafx-support/) services. |
0 commit comments