有没有办法将 EventHandler 添加到关闭 window 按钮(标题栏上的 X)JavaFX

Is there a way to add EventHandler to the close window button (the X on title bar) JavaFX

如标题所示 - 我已经找了一段时间了,但似乎没有找到答案。 setOnHiding 和 setOnHidden 阶段方法都不适用于关闭 X-button.

编辑:我想要实现的是在关闭操作时重置变量的值。这很容易用自定义控制器完成 - 在这种情况下是 MenuItem(setOnHidden 在这里工作,但不是 setOnCloseRequest)。正如答案中所建议的,后一种方法与关闭按钮一起使用。

使用EventHandler捕捉WindowEvent

public class MYUI extends Application implements EventHandler<WindowEvent> {  
    @Override  
    public void start(Stage s) throws Exception {  
      s.setOnCloseRequest(this);  
    }  

    @Override  
    public void stop() throws Exception {  
    }  

    @Override  
    public void handle(WindowEvent event) {  
        [...] your code
    }  
} 

或按照 MadProgrammer 的建议

stage.setOnCloseRequest(new EventHandler<WindowEvent>() {

      @Override
      public void handle(WindowEvent we) {
          [...] // your code
      }

});