JavaFX 8 and FXML DataBinding
Sebastian Rheinnecker
sebastian.rheinnecker at yworks.com
Mon Jan 7 03:41:33 PST 2013
Hello,
in JavaFX 2.x versions it was possible to bind data in FXML declarations
like this:
<Label
text="${corporation.employees.selectedEmployee.firstName}" />
with selectedEmployee being a SimpleObjectProperty and firstName being a
StringProperty.
I tried the Java 8 EAP today and got the following error:
java.lang.NullPointerException
at com.sun.javafx.fxml.BeanAdapter.<init>(BeanAdapter.java:77)
at
com.sun.javafx.fxml.expression.ExpressionValue$KeyPathMonitor.monitor(ExpressionValue.java:108)
at
com.sun.javafx.fxml.expression.ExpressionValue$KeyPathMonitor.monitor(ExpressionValue.java:121)
at
com.sun.javafx.fxml.expression.ExpressionValue$KeyPathMonitor.monitor(ExpressionValue.java:121)
at
com.sun.javafx.fxml.expression.ExpressionValue.monitorArguments(ExpressionValue.java:235)
at
com.sun.javafx.fxml.expression.ExpressionValue.addListener(ExpressionValue.java:196)
at
javafx.beans.property.StringPropertyBase.bind(StringPropertyBase.java:166)
at
javafx.fxml.FXMLLoader$Element.processPropertyAttribute(FXMLLoader.java:382)
at
javafx.fxml.FXMLLoader$Element.processInstancePropertyAttributes(FXMLLoader.java:223)
at
javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:576)
at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2449)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2149)
...
I believe this is due the properties get() method is returning null at
the time the application is started (at this time no employee is
selected). This also happens if something is directly bound to the
property which returns null:
${corporation.employees.selectedEmployee}
As mentioned before, the BeanAdapter accepted those in JavaFX 2.x
versions and it worked well. Is this an incompatible change or am I
doing something wrong?
Kind regards,
Sebastian Rheinnecker
--
Sebastian Rheinnecker
phone: +49 7071 9709050
fax: +49 7071 9709051
yWorks GmbH
Vor dem Kreuzberg 28
72070 Tuebingen
Germany
http://www.yworks.com
Managing Directors: Sebastian Müller, Michael Pfahler
Commercial Registry: Stuttgart, Germany, HRB 382340
More information about the openjfx-dev
mailing list