2013-02-03 3 views
3

Je ne trouve aucun exemple de liaison simple dans fxml seulement.Le bouton de liaison invalide la propriété à la sélection treeview dans fxml

Je souhaite activer/désactiver le bouton si un élément est sélectionné dans une arborescence.

J'ai essayé ce code (les étiquettes sont utilisées pour les liaisons de test):

<Scene xmlns:fx="http://javafx.com/fxml"> 
    <BorderPane> 
    <top> 
     <Button text="test" disable="${treeView.selectionModel.selectedItem.isNull}" /> 
    </top> 
    <center> 
     <TreeView fx:id="treeView" /> 
    </center> 
    <bottom> 
     <Label text="${treeView.selectionModel}" /> 
     <Label text="${treeView.selectionModel.selectedItem.isNull}" /> 
    </bottom> 
    </BorderPane> 
</Scene> 

Ce code ne produisent pas d'erreurs.

La première étiquette affiche le modèle de sélection treeView toString().
La deuxième étiquette n'affiche rien, mais devrait afficher vrai ou faux.
Le bouton doit activer et désactiver.

Des idées?

Répondre

0

A partir du code que vous pouvez faire quelque chose comme ceci:

treeview.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() 
    { 
     @Override 
     public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) 
     { 
      if (newValue.intValue() > 0) 
       button.setDisable(true); 
      else 
       button.setDisable(false); 
     } 
}); 
Questions connexes