为什么我的场景是空的?

我正在尝试使用Javafx(使用TornadoFX库)做一些3D工作,并且无法将SceneCamera设置为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函数,并且将代码移到HomeView视图中的init函数 – 都没有成功。

有任何想法吗? 拔出头发在这里。

(哦,在一个不相干的笔记上,我可以说,在TornadoFX中3D支持会坦白地说,使我的整个生活 ?)

视图是在场景附加之前创建的,所以要操纵场景,只需重写onDock并在那里执行操作。 当onDock被调用时,场景被附加。