window – 阻止或取消退出JavaFX 2
发布时间:2020-12-14 04:19:03 所属栏目:Windows 来源:网络整理
导读:退出 JavaFX程序时,我正在重写Application.stop()以检查未保存的更改.这没关系,但是给用户提供取消操作的选项会很好. 换句话说,Application.stop()是最后一次机会,虽然它确实阻止了退出,但撤销退出流程还有点晚. 更好的是为关闭请求设置一个监听器,可以通过
退出
JavaFX程序时,我正在重写Application.stop()以检查未保存的更改.这没关系,但是给用户提供取消操作的选项会很好.
换句话说,Application.stop()是最后一次机会,虽然它确实阻止了退出,但撤销退出流程还有点晚.
更好的是为关闭请求设置一个监听器,可以通过使用该事件来取消该监听器. 在应用程序类中: public void start(Stage stage) throws Exception { FXMLLoader ldr = new FXMLLoader(getClass() .getResource("Application.fxml")); Parent root = (Parent) ldr.load(); appCtrl = (ApplicationController) ldr.getController(); Scene scene = new Scene(root); stage.setScene(scene); stage.show(); scene.getWindow().setOnCloseRequest(new EventHandler<WindowEvent>() { public void handle(WindowEvent ev) { if (!appCtrl.shutdown()) { ev.consume(); } } }); } 然后在应用程序控制器中,上面引用为appCtrl: /** reference to the top-level pane */ @FXML private AnchorPane mainAppPane; public boolean shutdown() { if (model.isChanged()) { DialogResult userChoice = ConfirmDialog.showYesNoCancelDialog("Changes Detected","Do you want to save the changes? Cancel revokes the " + "exit request.",mainAppPane.getScene().getWindow()); if (userChoice == DialogResult.YES) { fileSave(null); if (model.isChanged()) { // cancelled out of the save,so return to the app return false; } } return userChoice == DialogResult.NO; } return true; } 注意:在FXML中引用mainAppPane(在这种情况下使用JavaFX Scene Builder)以允许访问场景和窗口;该对话框是从https://github.com/4ntoine/JavaFxDialog扩展而来的对象,fileSave是File – >的事件处理程序.保存菜单项.对于文件 – >退出菜单项: @FXML private void fileExitAction(ActionEvent ev) { if (shutdown()) { Platform.exit(); } } 希望这有助于某人! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- active-directory – Windows AD:按密码长度查找用户帐户
- 用户界面 – 类似于RapidWeaver的windows编辑器
- windows-phone – Windows Phone appBar在键盘上方添加额外
- Windows Phone 8 – 要在Windows Phone 8中使用的图标
- Analog Clock Window Example
- 在Windows和Linux上使用Java 8的Tomcat 7
- windows-7 – Windows 10上的ISCSI性能降低
- windows-server-2008 – 为什么我的局域网说“身份不明的网
- Windows API一日一练 48 PostThreadMessage函数
- 在Windows上,如何杀死目录中打开文件的所有进程?
推荐文章
站长推荐
热点阅读