JavaFx: not String null values and binding
Александр Свиридов
ooo_saturn7 at mail.ru
Wed Jun 10 11:56:36 UTC 2015
I have a POJO class Test that has Integer and String fields (all of them can be null). And I have javafx form with TextFields. To bind Test fields to text fields I use adapter. Now I create an instance of Test (all fields will be null)
Test test=new Test();
TestAdapter adapter=newTestAdapter(test);
//the following line works, although String name=null
nameTextField.textProperty().bindBidirectional(adapter.getNameProperty());
//the following line throws exception Integer id=null
idTextField.textProperty().bindBidirectional(adapter.getIdProperty(),newNumberStringConverter());
This is the exception I get:
>Exception in thread "JavaFX Application Thread" java.lang.NullPointerException at javafx.beans.property.adapter.JavaBeanIntegerProperty.lambda$get$38(JavaBeanIntegerProperty.java:95) at java.security.AccessController.doPrivileged(Native Method) at javafx.beans.property.adapter.JavaBeanIntegerProperty.get(JavaBeanIntegerProperty.java:92) at javafx.beans.binding.IntegerExpression.getValue(IntegerExpression.java:69) at javafx.beans.binding.IntegerExpression.getValue(IntegerExpression.java:44) at com.sun.javafx.binding.BidirectionalBinding.bind(BidirectionalBinding.java:88) at javafx.beans.binding.Bindings.bindBidirectional(Bindings.java:869) at javafx.beans.property.StringProperty.bindBidirectional(StringProperty.java:111)
Everything works ok if I do this way
test.setId(0);
idTextField.textProperty().bindBidirectional(adapter.getIdProperty(),newNumberStringConverter());
However, you can imagine how ugly this solution is - I loose all the abilities of null value and for my CRUD application it is death. Please, help me to understand how to work with Integer(and Others?) null values with bindings and adapters.
--
Александр Свиридов
More information about the openjfx-dev
mailing list