有没有办法禁用Mac OS Retina Scaling为Swing应用程序?

我们有一个相当复杂的应用程序需要尽可能多的屏幕空间,自然视网膜显示Mac Books非常适合这个目的。

但是,似乎在Swing中这些设备使用的是点而不是像素。 它们允许我将图标更改为更高分辨率版本,如此处所述。 但由于我们做了很多复杂的图形和组件覆盖,我想只使用“真实像素”。 要清楚,我不想修复模糊的图像或图标(在我的情况下不实用)只是为了禁用像素加倍。

通过这个问题找到了这个有趣的(尽管是hacky)选项。

据我所知,从JDK 1.8开始这是不可能的。 唯一的解决方法是检测视网膜并在绘图时使用比例仿射变换。 然而,检测视网膜似乎是一个问题,因为似乎可用的唯一选项不是在每个监视器的情况下,这可能不是一个好的解决方案: 如何检测Mac是否具有来自Java的Retina显示器?