title: JavaFX Draw a Single Axis
body: <p>How can I draw a single Axis to a pane?</p>
  
  <p>It gives me a runtime exception if I naively try <code>addAll(axis)</code></p>
  
  <p>I am browsing through the XYChart source for answers on how it draws axis.</p>
  
  <p>EDIT:</p>
  
  <p>Source</p>
  
  <pre><code>import javafx.application.Application;
  import javafx.scene.Scene;
  import javafx.scene.chart.NumberAxis;
  import javafx.scene.layout.StackPane;
  import javafx.scene.paint.Color;
  import javafx.stage.Stage;
  
  public class TestSingleAxis extends Application {
  
  
      public static void main(String[] args) {
          launch(args);
      }
  
      @Override
      public void start(Stage stage) {
  
          StackPane root = new StackPane();
  
          root.getChildren().addAll(new NumberAxis(1, 20, 1));
  
          Scene scene = new Scene(root, 1300, 800, Color.WHITESMOKE);
          stage.setScene(scene);
          stage.show();
  
      }
  
  }
  </code></pre>
  
  <p>Results</p>
  
  <pre><code>Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
      at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:548)
      at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:48)
      at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:134)
      at java.lang.Thread.run(Thread.java:722)
  Caused by: java.lang.NullPointerException
      at javafx.scene.chart.Axis.layoutChildren(Axis.java:744)
      at javafx.scene.chart.ValueAxis.layoutChildren(ValueAxis.java:359)
      at javafx.scene.Parent.layout(Parent.java:1014)
      at javafx.scene.Parent.layout(Parent.java:1022)
      at javafx.scene.Scene.layoutDirtyRoots(Scene.java:537)
      at javafx.scene.Scene.doLayoutPass(Scene.java:508)
      at javafx.scene.Scene.preferredSize(Scene.java:1467)
      at javafx.scene.Scene.impl_preferredSize(Scene.java:1494)
      at javafx.stage.Window$10.invalidated(Window.java:720)
      at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:106)
      at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:140)
      at javafx.stage.Window.setShowing(Window.java:783)
      at javafx.stage.Window.show(Window.java:798)
      at javafx.stage.Stage.show(Stage.java:242)
      at guifx.TestSingleAxis.start(TestSingleAxis.java:32)
      at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:491)
      at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:260)
      at com.sun.javafx.application.PlatformImpl$5$1.run(PlatformImpl.java:223)
      at com.sun.javafx.application.PlatformImpl$5$1.run(PlatformImpl.java:220)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:220)
      at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
  
  Process finished with exit code 1
  </code></pre>