JavaFX se lier à plusieurs propriétés
J'ai un simple fxml avec un champ de texte et un bouton. J'aimerais avoir le bouton désactivé si le champ est vide. J'ai donc insérer quelque chose comme ce qui suit dans mon controller:
@Override
public void initialize(URL url, ResourceBundle bundle) {
button.disableProperty().bind(textField.textProperty().isEqualTo(""));
}
..et cela fonctionne bien. Le problème est que lorsque j'ajoute un deuxième champ de texte et voudrais que mon bouton sera désactivé si un des champs est vide. Que faire alors? J'ai essayé ce qui suit, mais cela ne fonctionne pas:
@Override
public void initialize(URL url, ResourceBundle bundle) {
button.disableProperty().bind(textField.textProperty().isEqualTo(""));
button.disableProperty().bind(textField2.textProperty().isEqualTo(""));
}
OriginalL'auteur martin_dk | 2013-11-28
Vous devez vous connecter pour publier un commentaire.
Cela est possible en se liant à une expression booléenne via
Bindings
:Je suppose que nous utilisons " ou "au lieu de "et", parce que " et "permet de bouton si l'un des champs ne sont pas vides ,mais nous utilisons" ou " pour activer le bouton que lorsque les deux objets textfield ne sont pas vides.
OriginalL'auteur Andrey Chaschev
En plus de Andreys approche, j'ai trouvé que vous pouvez aussi faire comme ceci:
OriginalL'auteur martin_dk
En plus de martin_dk réponse, si vous voulez lier plus de deux propriétés, vous obtiendrez un code comme ci-dessous, un peu bizarre, mais ça fonctionne.
OriginalL'auteur Korvin Gump