2016-11-29 1 views
0

J'utilise le ControlsFX ToggleSwitch comme ceci:Comment utiliser controlsFX avec FXML

<ToggleSwitch fx:id="toggle" onAction="#handleToggleAction" mnemonicParsing="false" GridPane.columnIndex="1" /> 

Je veux être en mesure d'associer des actions à ce ToggleSwitch une méthode dans mon contrôleur.

Ceci est une partie de mon code dans le contrôleur:

@FXML 
private void handleToggleAction(ActionEvent event) throws IOException { 
    Boolean selected = ((ToggleSwitch) event.getSource()).isSelected(); 

    if(selected) { 
     //do something 
    } else { 
     //something else 
    } 
} 

Cela me cause une erreur:

Cannot determine type for property. 

Je ne sais pas pourquoi cela est à l'origine d'une erreur. Avant d'utiliser un ToggleSwitch, j'utilisais un ToggleButton et la méthode du gestionnaire fonctionnait correctement. Toute aide appréciée.

Répondre

1

ToggleSwitch ne contient pas simplement une propriété onAction.

Par conséquent, il est probablement préférable d'enregistrer un auditeur dans la méthode initialize du contrôleur:

@FXML 
private void initialize() { 
    toggle.selectedProperty().addListener((observable, oldValue, newValue) -> { 
     if(newValue) { 
      //do something 
     } else { 
      //something else 
     } 
    }); 

}