2017-03-18 1 views
0

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()

+0

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

+0

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

Répondre

0

j'ai finalement trouvé une bonne réponse dans here donc je suis désolé pour le double sujet un peu ...