Добрый день!
Работаю над проектом а JAVAFX. Есть несколько вкладок.
На каждой вкладке своя отдельная форма. Создала к каждой вкладке отдельный контроллер. Панель вкладок запускается через главный контоллер. Хочу сделать так чтобы в главном контоллере вызывались контоллеры для каждой вкладки. Никак не могу разобраться как это сделать. подскажите пожалуйста.
Вот часть кода для вызова форм в классе MainApp
public void initRootLayout() {
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("view/RootLayout.fxml"));
rootLayout = (BorderPane) loader.load();
Scene scene = new Scene(rootLayout);
primaryStage.setScene(scene);
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* Shows the tab overview inside the root layout.
*/
public void showTabOverview() {
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("view/TabLayout.fxml"));
AnchorPane tabOverview = (AnchorPane) loader.load();
rootLayout.setCenter(tabOverview);
MainController mainController = loader.getController();
mainController.setMainApp(this);
} catch (IOException e) {
e.printStackTrace();
}
}
В Main Controller
public class MainController implements Initializable {
private MainApp mainApp;
public MainController() {
}
@Override
public void initialize(URL location, ResourceBundle resources) {
System.out.println("App started");
}
public void setMainApp(MainApp mainApp) {
this.mainApp = mainApp;
}
}
Нужно вызвать UserOverviewСontroller и TeamOverviewController, для каждой вкладки свой. В Scene Builder отдельно создала форму для UserOverview и TeamOverview, а потом импортировала во вкладки.
В UserOverwiewController есть такие строки
public void setMainApp(MainApp mainApp) {
this.mainApp = mainApp;
// Add observable list data to the table
userTable.setItems(mainApp.getPersonData());
}