J'ai besoin de tester la valeur d'un élément sélectionné pour appeler différentes méthodes, donc j'écris ce code en ajoutant un écouteur, mais le code génère une erreur de syntaxe
@FXML
private JFXComboBox<String> cmbComp;
cmbComp.valueProperty().addListener(new ChangeListener<String>() {
public void changed(ObservableValue<String> composant, String oldValue, String newValue) throws SQLException {
if(/*test item value*/){
/*do something*/
}else{
/*do other thing*/
}
}
});
aussi je n'ai pas besoin d'une ancienne valeur et d'une nouvelle, il suffit de tester la valeur sélectionnée, comment puis-je passer des arguments?
J'ai trouvé l'erreur, voici le nouveau code, j'espère qu'il aide les autres
cmbComp.getSelectionModel().selectedItemProperty().addListener( (options, oldValue, newValue) -> {
System.out.println(newValue)
}
);
Une solution un peu plus simple et évitant certaines lignes de code supplémentaires consiste à ajouter un écouteur d'actions (idéalement à partir du générateur de scène) à la zone de liste déroulante, comme ceci:
private void comboAction(ActionEvent event) {
System.out.println(comboBox_DbTables.getValue());
}