最佳答案
我想在控制器类中处理 stage 事件(即隐藏)。所以我要做的就是加一个这样的听众:
((Stage) myPane.getScene().getWindow()).setOn*whatIwant*(...);
但问题是初始化在这段代码之后就开始了:
Parent root = FXMLLoader.load(getClass().getResource("MyGui.fxml"));
在这个代码之前:
Scene scene = new Scene(root);
stage.setScene(scene);
因此 getScene
返回 null。
我自己找到的唯一解决办法是在 myPane.sceneProperty
中添加一个监听器,当它变得不为空时,我得到场景,在它的 windowProperty
中添加我的监听器处理,我最终检索阶段。最后,将所需的监听器设置为舞台事件。
我觉得听众太多了。
这是解决我问题的唯一方法吗?