BooleanProperty,其值取决于是否将节点添加到场景

BooleanProperty whose value depends on if a node is added to a Scene

我正在为 JavaFX 开发滑动菜单,在它的定义中我经常使用 getScene() 方法来引用添加节点的场景的高度和宽度。

问题是幻灯片菜单定义在场景之前,返回一个NullPointerException

我认为解决这个问题的方法是创建一个带有侦听器的 BooleanProperty,每次 属性 的值发生变化时,都会检查它是 true 还是 false,分别执行涉及调用或不调用getScene()方法的代码行。

我怎样才能做到这一点?我以为我可以通过说

来做到这一点
BooleanProperty hasScene = new SimpleBooleanProperty();
hasScene.set(getScene());
hasScene.set(Boolean.valueOf(getScene()));
hasScene.set((boolean) getScene());

但无法从 Scene 转换为 Boolean

有什么想法吗?提前致谢。

hasScene.bind(sceneProperty().isNotNull());