我使用Java 8在Eclipse IDE中创建了一个程序,利用Swing GUI来缩放图像和图标到合适的尺寸并获取并使用屏幕分辨率。在Eclipse中编译程序时,程序显示完美,一切看起来都正常运行。但是,在将项目导出为“Runnable Jar”后运行程序时,图像缩放和程序外观都出现了问题。经进一步调查发现,Runnable Jar返回的屏幕分辨率比Eclipse中实际分辨率小2.5倍(Eclipse实际分辨率为3840x2160,而Runnable Jar返回的是1536x864)。网络上有一些间接证据表明,Java 8 Look and Feel(或类似物)不支持HiDPI屏幕缩放。有些解决方案声称可以解决问题,比如升级到Java版本8以上,或通过添加参数到jar编译等。这对于Java新手已经很困惑了,而且程序在Eclipse IDE中运行/编译时却完全正常显示,只会让事情更加复杂。我的问题是是否有人知道如何让使用Swing编写的Java程序在HiDPI屏幕上正确缩放,并需要遵循哪些流程才能编译出一个工作良好的程序?编辑1:值得注意的是,在Windows设置中,“缩放和布局”,“更改文本,应用程序和其他项目的大小”设置为250%。这意味着这个设置明显是我遇到的缩放问题的原因。有人知道如何在程序内部绕过此设置,或者为什么在Eclipse中运行时它可以正常工作吗?