This one starts from launcher @Override public void start(Stage stage) throws IOException { { --- some irrelevant task specifics --- } FXMLLoader fxmlLoader = new FXMLLoader(GS_Application.class.getResource("GS_view.fxml")); /* the rootLayout of the mainStage is formatted as a BorderPane */ BorderPane rootLayout = fxmlLoader.load(); primaryStage = stage; scene0 = new Scene(rootLayout, 900, 800); Image _img = new Image(Objects.requireNonNull(this.getClass().getResourceAsStream("GS_MV.png"))); stage.setTitle("G_String"); stage.getIcons().add(_img); myNest.setScene(scene0); {---- some further task specifics ---} primaryStage.show(); } public static void main(String[] args) { launch(); } ------------------------------------------------------------------------------------------ This one doesn't! @Override public void start(Stage stage) throws IOException { FXMLLoader fxmlLoader = new FXMLLoader(ChainProMain.class.getResource("layouts/RootLayout.fxml")); BorderPane rootLayout = fxmlLoader.load(); Scene scene = new Scene(rootLayout, 900, 700); stage.setTitle("ChainPro_m"); stage.setScene(scene); primaryStage = stage; controller = fxmlLoader.getController(); controller.setMainApp(this); { ---- some task specifics ---} primaryStage.show(); } public static void main(String[] args) { launch(); }