Я сам новичок в Java, и, возможно, это не самый сложный метод для этого сценария, но до сих пор он работал отлично для меня.
ьзуя JavaFX для приложения, и у меня есть файл Main.fxml с некоторыми дочерними файлами fxml внутри него.
Я хотел бы получить доступ к классу MainController Main.fxml из дочерних контроллеров.
Я попытаюсь объяснить лучше на примере:
MainFxml:
<HBox fx:controller="MainController.java">
<fx:include source="child.fxml"/>
</HBox>
MainController:
public class MainController implements Initializable {
private String string;
public void setString (String string) {
this.string = string;
}
ChildFxml:
<HBox fx:id="child" fx:controller="ChildController.java">
<Button text="hello" onAction="#selectButton"></Button>
</HBox>
ChildController:
public class ChildController implements Initializable {
@FXML HBox child;
@FXML Button button;
@FXML
public void selectButton (ActionEvent event) {
// here call MainController.setString("hello");
}
Я старалсяэто решение найдено в StackOverflow но мне нужно получить ссылку Controller на Main.fxml, который уже был загружен. Есть ли способ получить контроллер, начиная с определенной панели? Что-то вроде:
// child.getParent().getController();