我想在我的阶段开始后使用 setOnCloseRequest 但是我几乎得到了 NullPointerException 尽管我设置了正确的控制器。
我点击一个菜单项打开舞台,菜单打开后我想使用关闭按钮。我认为该方法会尝试访问,直到控制器被初始化。实际上我想说:请控制器,您在初始化后才被允许做某事。
这是我的控制器代码。
if (KundenDatenController.getInstance() != null) {
((Stage) (KundenDatenController.getInstance().kundenControllerPane.
getScene().getWindow())).setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent t) {
t.consume();
if (generalControler.controlEmptyTextField(pflichtfelder)) {
((Stage) (kundenControllerPane.getScene().getWindow())).close();
} else if (!generalControler.controlEmptyTextField(pflichtfelder)) {
FXOptionPane.showConfirmDialog((Stage) (kundenControllerPane.getScene().getWindow()),
"Sollen die Eingaben wirklich verworfen werden?",
"Programm schliessen");
if (status.equals("Laden")) {
KundenUebersichtController.getInstance().setStatus("Aufnehmen");
}
}
}
});