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; /** * Entry point for running the programme * @param args */ public static void main(String[] args) { launch(args); } /** * Loads and sets up the GUI elements * @param primaryStage * @throws Exception */ @Override public void start(Stage primaryStage) throws Exception { this.primaryStage = primaryStage; primaryStage.minHeightProperty().setValue(600); primaryStage.minWidthProperty().setValue(780); //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, 1200, 800); 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(); } /** * Loads panes for use in the GUI * @param fxmlName * @throws Exception */ 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); } }