Events 防止隐藏主对话框
我试图阻止关闭我的应用程序,但在查看JavaFX文档(以及一些实现之后)时,我注意到只有当用户尝试使用close按钮或ALT+F4快捷方式关闭窗口时,这种方法才有效。由于我需要截获关闭的内部尝试,我正在使用,这样我可以捕获关闭应用程序主对话框的所有尝试,但是我仍然无法阻止关闭:Events 防止隐藏主对话框,events,event-handling,javafx,javafx-2,javafx-8,Events,Event Handling,Javafx,Javafx 2,Javafx 8,我试图阻止关闭我的应用程序,但在查看JavaFX文档(以及一些实现之后)时,我注意到只有当用户尝试使用close按钮或ALT+F4快捷方式关闭窗口时,这种方法才有效。由于我需要截获关闭的内部尝试,我正在使用,这样我可以捕获关闭应用程序主对话框的所有尝试,但是我仍然无法阻止关闭: public abstract class AppBase extends Application { public void init(){ dialogoPrincipal.getPainel
public abstract class AppBase extends Application {
public void init(){
dialogoPrincipal.getPainel().getScene().getWindow().setOnHiding(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
event.consume();
}
});
}
}
公共抽象类AppBase扩展应用程序{
公共void init(){
dialogoPrincipal.getPainel().getScene().getWindow().setOnHiding(新的EventHandler()){
@凌驾
公共无效句柄(WindowEvent事件){
event.consume();
}
});
}
}
我做错什么了吗?是否有其他方法可以解决此问题?尝试在控制器上实现窗口事件处理程序:
public class XYZ implements EventHandler<WindowEvent>
{
@Override
public void handle( WindowEvent closeEvent )
{
closeEvent.consume();
}
}
公共类XYZ实现EventHandler
{
@凌驾
公共无效句柄(WindowEvent closeEvent)
{
closeEvent.consume();
}
}
或者尝试在AppBase类上实现它。
CloseRequest
事件由GUI用户触发,而Hide
事件则通过编程方式调用。因此,您可以控制hide
事件调用的代码流。实现一些包装器util类,比如StageUtil.hideRequest(stage)
,或者将自己的类扩展为stage.myHide()
等。隐藏事件似乎无法使用,我认为这是一个正确的设计决定。隐藏
和隐藏
事件的目的在它们的Javadoc中有描述,没有提到使用它们。我可以问一下,为什么您要有效地阻止应用程序终止吗?@PeekaySwitch根据用户的任务,应用程序在尝试关闭时会要求确认。