JavaFX连接多个FXML控制器

时间:2017-06-28 15:02:27

标签: java javafx-8 fxml fxmlloader

我想用FXML创建一个Programm。 我为每个文档都有多个带控制器的FXML文档。但是我尝试这样做的方式并不起作用,因为控制器的对象是空的。

<HBox fx:id="A" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2"
fx:controller="controllers.AController" alignment="BOTTOM_LEFT">

<Pane fx:id="B" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2"
fx:controller="controllers.BController" HBox.hgrow="ALWAYS" maxWidth="Infinity"/>

其中2人必须互相认识。

我想它会像:

FXMLLoader Aloader = new FXMLLoader(getClass().getResource("/views/A.fxml"));
HBox toolbar = ALoader.load();

FXMLLoader Bloader = new FXMLLoader(getClass().getResource("/views/B.fxml"));
HBox toolbar2 = BLoader.load();

然后AController应该从B接收初始化的控制器。

AContoller ac = Aloader.getController();
BCOntroller bc = Bloader.getController();
ac.setBController(bc);

在AController中有一个看起来像的方法,但“getController()”返回与fxml关联的控制器的完整新实例:

public class AController{
private BContoller bc;

  public void setBController(BController b){
    bc = b;
  }
};

0 个答案:

没有答案