Platinum Partner
java,javafx

Using JavaFX Bean Binding ... in Java!

My priority for working on BetterBeansBinding (BBB) is writing tests and fixing bugs of BeansBinding. Also, a few people started asking for minor enhancements, and these are for sure the high priority tasks.

BetterBeansBinding is a library for implementing property binding with Java objects. "Property binding" is about keeping two properties of two object instances in sync. BBB is a fork of the BeansBinding project, which provides the reference implementation for the JSR-295 specification.

One of the things that I have in mind for the evolution of the library is to try something to be as similar as possible to JavaFX binding. Of course, it can't be as easy as JavaFX binding, as JavaFX introduced language enhancements for that function. But something can be probably done (I've started writing some very basic hacks, not to be discussed yet).

Today, I've run into this post by Thomas K√ľnneth that is undoubtedly worth reading. Thomas hacked around with the JavaFX binding implementation (which is made in Java) and showed how it can be used from Java applications. Of course he's aware that internal stuff in JavaFX is not officially published and should not be used in production.

I'm quoting two final questions, that I'd like to discuss in the BetterBeansBinding perspective:

  1. Does Sun allow the usage and possibly the redistribution of parts of the JavaFX runtime for non-JavaFX applications?
  2. Should we even bother? After all, there are other, more mature binding frameworks for Swing developers

Well, the answer of #1 is clear: you can't, as it is explicitly forbidden by the JavaFX license. Furthermore, being JavaFX not FLOSS, many people wouldn't use it.

Then, I'd say it makes sense to bother about it, since JavaFX binding is elegant and leads to more compact code.

What do you think?

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}