package seng302; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; import seng302.Controllers.Controller; import seng302.Controllers.MainController; import java.io.InputStream; public class App extends Application { Stage primaryStage; BorderPane mainContainer; Scene mainScene; public static void main( String[] args ) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { this.primaryStage = primaryStage; //load the first container try { FXMLLoader loader = new FXMLLoader(); InputStream in = getClass().getClassLoader().getResourceAsStream("scenes//mainpane.fxml"); mainContainer = (BorderPane) loader.load(in); mainScene = new Scene(mainContainer, 800, 600); primaryStage.setScene(mainScene); primaryStage.sizeToScene(); MainController mainController = (MainController) loader.getController(); mainController.setParent(this); in.close(); //add the center loadPane("racepane.fxml"); } catch (Exception e) { e.printStackTrace(); } primaryStage.show(); } public void loadPane(String fxmlName) throws Exception{ FXMLLoader loader = new FXMLLoader(); InputStream in = getClass().getClassLoader().getResourceAsStream("scenes//"+fxmlName); Parent page; try { page = (Parent) loader.load(in); } finally { in.close(); } mainContainer.getChildren().remove(mainContainer.getCenter()); mainContainer.setCenter(page); Controller controller = (Controller) loader.getController(); controller.setParent(this); } }