Почему у меня нет нулевой сцены?

Я пытаюсь выполнить некоторую 3D-работу с Javafx (используя библиотеку TornadoFX) и не могу установить свою PerspectiveCamera в Scene когда Scene возвращает null .

Я запускаю свою программу следующим образом:

 class ThreeDTest : App(HomeView::class, ThreeDStyles::class) { override fun start(stage: Stage) { super.start(stage) stage.show() stage.scene.fill = Color.BLACK val primaryScreenBounds = Screen.getPrimary().visualBounds stage.maxWidth = 1920.0 stage.maxHeight = 1080.0 stage.minWidth = 1920.0 stage.minHeight = 1080.0 } } 

а затем в классе HomeView меня есть следующее:

 class HomeView : View() { override val root = stackpane { val axisGroup = Xform() val world = Xform() val camera = PerspectiveCamera(true) val cameraXform = Xform() val cameraXform2 = Xform() val cameraXform3 = Xform() val cameraInitialDistance = -450.0 val cameraInitialXAngle = 70.0 val cameraInitialYAngle = 320.0 val cameraNearClip = 0.1 val cameraFarClip = 10000.0 //just a builder class to add properties to the camera buildCamera(this, cameraXform, cameraXform2, cameraXform3, camera, cameraNearClip, cameraFarClip, cameraInitialDistance, cameraInitialYAngle, cameraInitialXAngle) buildAxes(axisGroup, world) println(scene) //returns null scene.camera = camera //this does not work as scene is null } 

Есть ли что-то, что я делаю неправильно? Я понятия не имею, почему моя Scene равна нулю, поскольку я думал, что TornadoFX View должен был создать новую Scene при ее инициализации? Нужно ли вручную создавать его в классе App? Я попытался переопределить функцию createPrimaryScene , а также переместить мой код в функцию init в представлении HomeView и это не имеет успеха.

Есть идеи? Вытащить волосы здесь.

(О, и на несвязанной ноте, могу ли я просто сказать, что поддержка 3D в TornadoFX, честно говоря, за всю мою жизнь ?)

Представление создается до того, как сцена прикреплена, поэтому для управления сценой просто переопределите onDock и выполните там свои операции. Когда onDock , сцена прикрепляется.