加载FXML文件时,将stage的值传递给javafx类的另一个控制器

时间:2016-06-03 11:04:50

标签: java javafx fxml fxmlloader

根据我的想法当编译器在javaFX中执行以下两行时, 第一行只是设置ABC.fxml文件的位置。 并且在第二行执行loader.load()时,编译器生成一个ABC.fxml文件的Controller的一个对象,它是ABCcontroller.java。并称之为。

  loader.setLocation(MyApplicationClass.class.getResource("/demo/view/ABC.fxml"));
  rootDisplay = (BorderPane) loader.load();

在此期间(在loader.load())我想将舞台值从我当前的类文件(mainclass.java)传递给ABCcontroller.class的this对象。因为我需要进一步的这个价值。

我见过像

loader.load(URL Location, ResourceBundle resources,.....)

我们可以通过给出参数来传递stage的值。我不知道如何调用此参数或使用此参数是什么。

请建议我如何以这种方式或其他想法实施同样的事情。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作将参数传递给另一个控制器:

在控制器类中创建一个接受参数的方法,例如:

public void initVariables(String variable) {
    this.variable = variable;
}

loader.load()

之后调用该方法
WindowController controller = fxmlLoader.<WindowController>getController();
controller.initVariables("Test");

WindowController替换为控制器类的名称。