JavaFX binden mehrere Eigenschaften
Habe ich eine einfache fxml mit einem textfield und einem button. Ich möchte die Schaltfläche deaktiviert, wenn das textfield leer ist. So ich fügen Sie etwas wie das folgende in mein controller:
@Override
public void initialize(URL url, ResourceBundle bundle) {
button.disableProperty().bind(textField.textProperty().isEqualTo(""));
}
..und das funktioniert auch. Das problem ist, wenn ich, fügen Sie ein zweites Textfeld und möchte, dass meine Schaltfläche deaktiviert sein, wenn entweder textfield leer ist. Was dann zu tun? Ich habe Folgendes versucht, aber das funktioniert nicht:
@Override
public void initialize(URL url, ResourceBundle bundle) {
button.disableProperty().bind(textField.textProperty().isEqualTo(""));
button.disableProperty().bind(textField2.textProperty().isEqualTo(""));
}
InformationsquelleAutor martin_dk | 2013-11-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist möglich durch das binden an einen booleschen Ausdruck über
Bindings
:Ich denke, wir verwenden 'oder' statt 'und' ,da 'und' ermöglicht die-Taste, wenn eines der Felder nicht leer sind ,aber wir verwenden 'oder' um die Schaltfläche zu aktivieren nur, wenn beide Textfelder nicht leer sind.
InformationsquelleAutor Andrey Chaschev
Zusätzlich zu Andreys Ansatz, fand ich, dass man auch es so machen:
InformationsquelleAutor martin_dk
Neben martin_dk beantworten, wenn Sie möchten, binden Sie mehr als zwei Eigenschaften, die Sie erhalten code wie unten, sieht komisch aus, aber es funktioniert.
InformationsquelleAutor Korvin Gump