使用JavaFX不会将参数传递给下一个控制器

时间:2018-07-13 00:36:39

标签: java javafx model-view-controller fxml scenebuilder

我试图将两个参数从一个控制器传递到另一个。我已经从应用程序的“登录”视图到“主”视图完成了此操作,现在我试图在单击按钮时将参数传递给另一个视图。我可以看到下一个视图而没有任何错误,但是参数没有传递。

这是传递参数的控制器类(仅包括相关代码)

public class MemberMainController {

private String ID;

//button being pressed
@FXML
public void btnEditSet(ActionEvent event) throws IOException {

    ObservableList<Set> selectedRows;

    selectedRows = tableViewSets.getSelectionModel().getSelectedItems();

    FXMLLoader loader = new FXMLLoader(getClass().getResource("../../../com/RIS/view/EditSet.fxml"));  

    Parent root = (Parent)loader.load();
    Scene scene = new Scene(root);
    EditSetController controller = loader.getController();

    //the two parameters being passed
    controller.setID(getID());
    controller.setSetListID(selectedRows.get(0).getSetID());

    Stage stage = new Stage();
    stage.setScene(scene);
    stage.setTitle("Edit Set");    
    stage.show();

    //closes the previous window
    Stage ostage = (Stage)((Node)event.getSource()).getScene().getWindow();
    ostage.close();

}

public void setID(String setID) {
    ID = setID;
}

public String getID() {
    return ID;
}
}

对于传递参数的get()中的两个参数,我都有set()EditSetController方法。在FXML中,我将fx:controller设置为EditSetController.java

这不会产生任何错误,但是在加载下一个视图时,ID中的setListIDEditSetController被设置为null

0 个答案:

没有答案