获取窗口所在屏幕信息
今天通过Debug调试在查看Stage对象的时候发现内部有个screen属性,但是是私有的也没有公开的api能访问到改属性,但是既然发现里面有这个屏幕属性并且也是窗口所在的屏幕,那获取的方式就会有很多中了,反射就是最简单的方式,但是在源码中找到了WindowHelper这个Api,所以还是跟着API走了,百度了好久最终还是自己搞定了
-
启动时需要将Stage保存下来
-
在程序中可以通过WindowHelper.getWindowAccessor()加上保存好的Stage获取所在屏幕信息:
Stage stage = ApplicationContext.getStage(); WindowHelper.WindowAccessor windowAccessor = WindowHelper.getWindowAccessor(); ReadOnlyObjectProperty<Screen> screenReadOnlyObjectProperty = windowAccessor.screenProperty(stage); Screen screen = screenReadOnlyObjectProperty.get();
-
下方图片是debug的截图