package eu.mihosoft.vrl.fxscad; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.PerspectiveCamera; import javafx.scene.Scene; import javafx.scene.control.TextArea; import javafx.stage.Stage; public class JFXScad extends Application { private static TextArea log; private static MainController controller; /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { Parent main = loadFromFXML(); Scene scene = new Scene(main, 1024, 768,true); scene.getStylesheets().add(JFXScad.class.getResource("java-keywords.css"). toExternalForm()); PerspectiveCamera camera = new PerspectiveCamera(); scene.setCamera(camera); primaryStage.setTitle("JavaFXScad"); primaryStage.setScene(scene); primaryStage.setMinWidth(1024); primaryStage.setMinHeight(768); primaryStage.show(); } public static Parent loadFromFXML() { if (controller!=null) { throw new IllegalStateException("UI already loaded"); } FXMLLoader fxmlLoader = new FXMLLoader( JFXScad.class.getResource("Main.fxml")); try { fxmlLoader.load(); } catch (IOException ex) { Logger.getLogger(JFXScad.class.getName()). log(Level.SEVERE, null, ex); } Parent root = fxmlLoader.getRoot(); root.getStylesheets().add(JFXScad.class.getResource("java-keywords.css"). toExternalForm()); controller = fxmlLoader.getController(); log = controller.getLogView(); return root; } public static TextArea getLogView() { if (log==null) { throw new IllegalStateException("Load the UI first."); } return log; } }