代码之家  ›  专栏  ›  技术社区  ›  Dan

JavaFx窗口到AWT窗口

  •  0
  • Dan  · 技术社区  · 7 年前

    我写了一个程序,我想在Mac上禁用全屏,但标准的苹果库不起作用。因为它需要一个AWT窗口,而不是我的javafx窗口:

    if(System.getProperty("os.name").toLowerCase().indexOf("mac") >= 0){
            com.apple.eawt.FullScreenUtilities.setWindowCanFullScreen(stage.getScene().getWindow(), false);
    }
    

    您能解释一下如何将javafx窗口转换为awt窗口吗。如果没有,你能推荐我另一个用于setWindowCanFullScreen的apple库,但使用javafx吗

    1 回复  |  直到 7 年前
        1
  •  0
  •   ecerer    7 年前

    转换是个坏主意。

    尝试以下操作:

    if(MAC) stage.setFullScreen(false);
    stage.fullScreenProperty().addListener(new ChangeListener<Boolean>(){
            public void changed(ObservableValue<? extends Boolean> ov, Boolean oldv, Boolean newv){
                Platform.runLater(new Runnable(){
                    public void run(){
                        if(MAC && oldv==false && newv==true)stage.setFullScreen(false);
                    }
                });
            }
    });
    

    编辑:一个没有“小延迟”的解决方案对我们来说是未知和有趣的!