JavaFx window 到 AWT window
JavaFx window to AWT window
我写了一个程序,我想在 Mac 上禁用全屏,但标准苹果库不起作用。因为它需要一个 AWT window 而不是我的 javafx :
if(System.getProperty("os.name").toLowerCase().indexOf("mac") >= 0){
com.apple.eawt.FullScreenUtilities.setWindowCanFullScreen(stage.getScene().getWindow(), false);
}
您能解释一下如何将 javafx window 转换为 awt window。如果不能,你能为我推荐另一个用于 setWindowCanFullScreen 的苹果库,但带有 javafx
转换是个坏主意。
尝试这样的事情:
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);
}
});
}
});
编辑:没有 "small delay" 的解决方案对我们来说仍然未知且有趣!
我写了一个程序,我想在 Mac 上禁用全屏,但标准苹果库不起作用。因为它需要一个 AWT window 而不是我的 javafx :
if(System.getProperty("os.name").toLowerCase().indexOf("mac") >= 0){
com.apple.eawt.FullScreenUtilities.setWindowCanFullScreen(stage.getScene().getWindow(), false);
}
您能解释一下如何将 javafx window 转换为 awt window。如果不能,你能为我推荐另一个用于 setWindowCanFullScreen 的苹果库,但带有 javafx
转换是个坏主意。
尝试这样的事情:
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);
}
});
}
});
编辑:没有 "small delay" 的解决方案对我们来说仍然未知且有趣!