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

时间:2014-09-18 06:57:40

标签: java macos swing retina-display codenameone

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

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

我通过this找到了this question有趣(虽然是hacky)选项。

1 个答案:

答案 0 :(得分:2)

据我所知,从JDK 1.8开始这是不可能的。唯一的解决方法是检测视网膜并在绘制时使用比例仿射变换。 然而,检测视网膜似乎是一个问题,因为似乎可用的唯一选项不是在每个监视器的情况下,这可能不是一个好的解决方案: How can I detect whether a Mac has a Retina display from Java?