我使用 Java 8 创建了一个程序,该程序在 Eclipse IDE 中使用了 Swing GUI。要将图像和图标缩放到适当的大小,它会获取并使用屏幕分辨率。在 Eclipse 中编译该程序后,该程序显示得非常好,并且一切似乎都正常运行。但是,当我将项目导出为“Runnable Jar”并运行程序时,图像缩放和程序外观都关闭了。
经过进一步调查,似乎可运行的 jar 返回的屏幕分辨率正好比 eclipse 中的分辨率低 2.5 倍(实际分辨率 - 3840x2160 与 1536x864)。互联网上有间接证据表明 Java 8 外观(或类似的东西)不支持 HiDPI 屏幕缩放。有一些分散的解决方案声称可以解决这个问题,比如更新到 8 之后的 Java 版本,或者通过向 jar 编译添加参数(无论这意味着什么)。这已经让 Java 新手感到困惑,而且当程序在 Eclipse IDE 中运行/编译时完美显示,只会更加困惑。
我的问题是,是否有人知道如何使用 Swing 在 Java 中编译程序以在 HiDPI 屏幕上正确缩放,以及编译工作程序需要遵循的过程是什么?
编辑 1:有趣的是,在我的 Windows 设置中,“缩放和布局”、“更改文本、应用程序和其他项目的大小”设置为正好 250%,这意味着此设置显然是导致我遇到的缩放问题。有人知道如何从程序中绕过这个设置,或者当我通过 Eclipse 运行它时为什么它会起作用?