如何使用“提醒”对话框要求用户确认他/她是否要关闭舞台?
如果答案为是,则进程使用System.exit(0)。
如果回答“否”,请退出setOnCLoseRequest()方法。
Platform.setImplicitExit(false);
stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
public void handle(WindowEvent e) {
boolean isExit = exitDialog();
if (!isExit) {
e.consume();
}
}
});
另外,我有
public boolean exitDialog() {
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("Mars Simulation Project");
alert.setHeaderText("Confirmation Dialog");
alert.initOwner(stage);
alert.setContentText("Do you really want to quit MSP?");
ButtonType buttonTypeYes = new ButtonType("Yes");
ButtonType buttonTypeNo = new ButtonType("No");
alert.getButtonTypes().setAll(buttonTypeYes, buttonTypeNo);
Optional<ButtonType> result = alert.showAndWait();
if (result.get() == buttonTypeYes){
if (multiplayerMode != null)
if (multiplayerMode.getChoiceDialog() != null)
multiplayerMode.getChoiceDialog().close();
return true;
} else {
return false;
}
}
注意:我尝试通过添加Platform.setImplicitExit()和e.consume()来使用以下链接中的建议,但它们不起作用!
编辑:我想知道为什么警报对话框根本没有弹出。所以WindowEvent e甚至没有被捕获。如果这是罪魁祸首,我该如何解决?