In java 7 you can not use lambda expressions so you have to do it in the old way.
Feel free to format the code cause was written using phone..
One fast way is to add on each TextField
a change listener at it's textproperty() like this :
ChangeListener listener = new ChangeListener() {
@Override
public void changed(ObservableValue observable, String oldValue, String newValue) {
boolean visible = true;
for (TextField field : fieldsArray)
if (field.getText().isEmpty()) {
visible = false;
break;
}
button.setVisible(visible);
}
};
textField.textProperty().addListener(changeListener);
Remember that one listener can be added multiple times.
Something better here would be to bind Button visibleProperty()
to a SimpleBooleanProperty
like this:
BooleanProperty visibleProperty = new SimpleBooleanProperty();
button.visibleProperty.bind(visibleProperty);
A little modification then in the change listener wil be done:
ChangeListener listener = new ChangeListener(){
@Override
public void changed(ObservableValue observable, String oldValue, String newValue) {
boolean visible = true;
for(TextField field:fieldsArray)
if(field.getText().isEmpty()){
visible=false;
break;
}
visibleProperty.set(visible);
}
};