Je travaille sur un projet scolaire rn, et face à un problème avec les boutons d'activation après avoir sélectionné une ligne d'une table, les boutons et la tableView sont en 2 différents fichiers fxml, donc j'utilise un getController() pour appeler la méthode qui les active, mais ça ne marche pas, j'ai essayé un system.out et ça a bien fonctionné, mais pas setDisable() voici le code dans le contrôleur tableView:javafx setDisable() ne fonctionne pas en cas d'appel depuis l'extérieur du contrôleur de classe
public void initialize(URL url, ResourceBundle rb) {
stock.addEventHandler(MouseEvent.MOUSE_CLICKED , (e) -> {
Produit p=null;
p = stock.getSelectionModel().getSelectedItem();
if(p!=null){
FXMLLoader loader = new FXMLLoader(getClass().getResource("sideStock.fxml"));
try {
Parent root= (Parent)loader.load();
} catch (IOException ex) {
Logger.getLogger(StockController.class.getName()).log(Level.SEVERE, null, ex);
}
SideStockController controller=loader.getController();
controller.active();
}
});
//some other methods
initCol();
resize(stock);
initDataInTable();
}
et voici la méthode que je suis en train d'appeler
public void active() {
modifier.setDisable(false);
supprimer.setDisable(false);
entree.setDisable(false);
}
il a bien fonctionné quand je l'ai appelé d'une autre méthode dans la même classe ..
les deux fichiers FXML sont chargés dans la même scène, dans UImain.fxml/initialize()
Vous créez un nouveau contrôleur, qui est séparé de celui contrôlant la vue. Voir [cette question] (http://stackoverflow.com/questions/37205187/fxmlloader-cannot-find-running-controller-instance-and-creates-new-one) – Itai
merci, je comprends maintenant où est le problème, mais que solution n'a pas fonctionné pour moi, j'essaie des choses similaires rn – Taiga