Enhancements for JavaFX 18

John Hendrikx hjohn at xs4all.nl
Sat Sep 11 15:16:07 UTC 2021

I'm willing to invest the necessary time in this.

What should a concrete proposal consist of? Is there a format for this 
that I can follow (like 
https://gist.github.com/brcolow/26370db6cab0355186d4a1d13b30fc19 for 

Otherwise I can flesh out a small document with the Why, What, How of 
this addition, broken into several parts to keep each addition small but 
coherent with a larger whole.

My current proposal adds around 400 lines of code, which is about as 
small as I can get it while still offering something of value. The newly
introduced public API surface can be reduced a bit further.

A summary of the changes are:

ObservableValue interface

- 5 new methods with default implementations to support fluent mappings

- 2 new methods for registration of subscribers (could be removed from
   the public API for now).


- adds two new protected methods with trivial implementations
   in order to support the functionality needed by LazyObjectBinding

- functionality of class unaltered for any existing code, fully
   backwards compatible

Subcription interface

- new public interface with two methods (does not need to be part
   of the initial API, could be internal for now)

All the other code is just implementation and can be moved to internal 
packages which means that this change could be limited to introducing 
five new public methods and two protected ones.

If you can point me in the right direction, I'll work on a concrete 

I also have a small Maven dependency with these changes as part of 
JavaFX (breaking module boundaries) that can serve as a preview of the 
feature if there is any interest.


On 27/08/2021 18:58, Kevin Rushforth wrote:
> This is a rather large addition to the properties API, but there seems
> to be enough interest in it that it might be worth getting to the point
> of a concrete proposal that we could discuss on the list.
> I wouldn't expect it for JavaFX 18, since it will almost certainly take
> longer than that. Which makes this a good time to remind folks that the
> development model under the six month release cycle is such that
> features go in when ready, rather than necessarily being tied to a
> specific release.
> -- Kevin
> On 8/4/2021 3:25 PM, John Hendrikx wrote:
>> Perhaps:
>> Fluent bindings for ObservableValue
>> https://github.com/openjdk/jfx/pull/434
>> It was received well I think, and there was some interest from Nir
>> Lisker to work on a proposal.
>> --John
>> On 30/07/2021 14:56, Kevin Rushforth wrote:
>>> Now that JavaFX 17 is in RDP2, we can turn more attention to bug fixes
>>> and enhancement requests for JavaFX 18. It's the summer, so there may be
>>> delays as some people are out at various times (including me), but I
>>> would like to get some of the outstanding enhancement requests moving
>>> over the next few weeks.
>>> Specifically, I'd like to see the following proceed:
>>> * Transparent backgrounds in WebView
>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8090547
>>> PR: https://github.com/openjdk/jfx/pull/563
>>> * Add DirectionalLight
>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8234921
>>> PR: https://github.com/openjdk/jfx/pull/548
>>> * CSS pseudoclasses :focus-visible and :focus-within
>>> https://bugs.openjdk.java.net/browse/JDK-8268225
>>> PR: https://github.com/openjdk/jfx/pull/475
>>> * Improve property system to facilitate correct usage (minus the binary
>>> incompatible API change)
>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8268642
>>> PR: https://github.com/openjdk/jfx/pull/590 (Draft)
>>> And maybe the following:
>>> * Add CSS themes as a first-class concept (need a consensus on how to
>>> proceed)
>>> * Undecorated interactive stage style (still in early discussion, but
>>> the concept looks interesting and useful)
>>> There are probably others I'm forgetting.
>>> Each of the above should be discussed in their own thread on openjfx-dev
>>> rather than a reply to this thread.
>>> -- Kevin

More information about the openjfx-dev mailing list