一个控制器到2 fxmls(JavaFX)

Bal*_*alu 3 javafx controllers fxml

可以将两个FXML(JavaFX)文件连接到一个控制器吗?我不能通过在每个FXML文件中更改"fx:controller"来做到这一点......

有任何想法吗?

jew*_*sea 5

是的,你可以这样做.虽然可以这样做,但我不推荐这种方法.

不要fx:controller在FXML中放置属性.创建一个新控制器并将相同的控制器设置为单独的FXMLLoader实例.

CustomerDialogController dialogController = 
    new CustomerDialogController(param1, param2);

FXMLLoader summaryloader = new FXMLLoader(
    getClass().getResource(
        "customerSummary.fxml"
    )
);
summaryLoader.setController(dialogController);
Pane summaryPane = (Pane) summaryLoader.load();

FXMLLoader detailsLoader = new FXMLLoader(
    getClass().getResource(
        "customerDetails.fxml"
    )
);
detailsLoader.setController(detailsController);
Pane detailsPane = (Pane) detailsLoader.load();

SplitPane splitPane = new SplitPane(
    summaryPane, 
    detailsPane
);
Run Code Online (Sandbox Code Playgroud)

我想创建一个控制器,因为我有问题发送数据beetwen controlers

仅使用共享控制器来共享数据的IMO不是首选的解决方案.

相反,要么在多个控制器之间共享数据,例如:

这里有另一个例子: