我想用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;
}
};