Java 8中没有适当的HiDPI支持。
在Java 9中,JavaFx应用程序可以正确缩放到它们所在的显示器。例如,如果我的显示器设置为150%比例,则Java应用程序会缩放到150%。
参见:http://openjdk.java.net/jeps/263
但是,出于测试目的,我需要能够使用java.exe标志在Windows 10中禁用缩放。我该如何实现呢?
此外,在应用程序内部,也许我可以编程方式地禁用(和重新启用)它吗?
Java 8中没有适当的HiDPI支持。
在Java 9中,JavaFx应用程序可以正确缩放到它们所在的显示器。例如,如果我的显示器设置为150%比例,则Java应用程序会缩放到150%。
参见:http://openjdk.java.net/jeps/263
但是,出于测试目的,我需要能够使用java.exe标志在Windows 10中禁用缩放。我该如何实现呢?
此外,在应用程序内部,也许我可以编程方式地禁用(和重新启用)它吗?
我在一个关于Substance bug报告的帖子中发现了这个不常见的选项。 这个选项可以解决Swing应用程序中的问题。
-Dsun.java2d.uiScale=1.0
如果您正在使用JavaFX,则需要:
-Dprism.allowhidpi=false
遗憾的是,我找不到任何官方文档来介绍这两个选项。
如果需要的话,可以从那个网站找到另外几个有用的JVM参数:
-Dsun.java2d.uiScale.enabled=false
-Dsun.java2d.win.uiScaleX=1.0 -Dsun.java2d.win.uiScaleY=1.0
使用
System.setProperty( "sun.java2d.uiScale", "1.0" );
在您的Java代码中,这对我有用(JDK 17)。