从类控制器外部调用时,javafx setDisable()不起作用

时间:2017-03-18 15:50:05

标签: java javafx controllers

我正在处理一个学校项目,并且在从表格中选择一行后面临启用按钮的问题,按钮和tableView在2个不同的fxml文件中,所以我使用getController()来调用启用它们的方法,但它没有工作,我尝试了一个system.out并且它工作正常,但不是setDisable() 这是tableView控制器中的代码:

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

}    

这是我试图打电话的方法

public void active() {

    modifier.setDisable(false);
    supprimer.setDisable(false);
    entree.setDisable(false);
}

当我从同一个类中的另一个方法调用它时它工作正常。

两个fxml文件都加载到同一个场景中,在UImain.fxml / initialize()中

1 个答案:

答案 0 :(得分:0)

我终于在here找到了一个好的答案 所以我很抱歉双重主题... ...