JavaFX Java17 - 退出全屏事件

JavaFX Java17 - exit Fullscreen Event

我在我的应用程序中添加了一个自定义工具栏(放置我的 window 操作的地方)。到目前为止一切正常。与 window 处理相关 我正在寻找 possibility 来处理“fullscreen got closed”事件。设想: 应用程序以 windowed 模式启动 -> 用户单击(自定义)工具栏按钮进入全屏。工具栏现在将其可见性设置为 false。用户现在通过按钮退出全屏模式(本机 macOS 按钮退出全屏)--> 我现在需要对此做出反应(将工具栏再次设置为可见)但找不到方法。

main.java

MainController mc = new MainController();
Parent root = FXMLLoader.load(getClass().getResource("welcome-view.fxml"));
stage.initStyle(StageStyle.TRANSPARENT);
mc.doSwitchScenes(stage, root);
stage.show();

MainController.java

...
private String title = "Project Apollo";
private Color fillColor = TRANSPARENT;
private int minWidth = 800;
private int minHeight = 600;
...

public void btnMinimize(MouseEvent mouseEvent) {
    Stage stage = (Stage)((Circle)mouseEvent.getSource()).getScene().getWindow();
    // is stage minimizable into task bar. (true | false)
    stage.setIconified(true);
};

public void btnCloseApp(MouseEvent mouseEvent) {
    Platform.exit();
    System.exit(0);
}

public void btnFullscreen(MouseEvent mouseEvent) {
    Stage stage = (Stage)((Circle)mouseEvent.getSource()).getScene().getWindow();
    stage.setFullScreen(true);
    Scene actualScene = ((Node)mouseEvent.getSource()).getScene();
    Parent hbc = (Parent) actualScene.lookup("#headerBarContainer");

    if(hbc != null){
        hbc.setVisible(false);
    }
    System.out.println("clicked FS");

}
...

关键是至少在 MacOS 上 window 有其原生的 os 控件来退出全屏 - 它是 pos 可以针对此事件还是至少更改也许是舞台尺寸?

收听 stage.fullScreenProperty() 并响应更改:

stage.fullScreenProperty().addListener((ChangeListener) (obs,oldValue,newValue) -> 
                                          {/*TODO respond to changes in full screen */;});