【问题标题】:How to disable scaling the UI on Windows, for Java 9 applications?对于 Java 9 应用程序,如何在 Windows 上禁用缩放 UI?
【发布时间】:2018-05-16 17:12:18
【问题描述】:

Java 8 中没有适当的 HiDPI 支持

Java 9 中,JavaFx 应用程序可以正确缩放到它们所在的监视器。例如,如果我的监视器设置为 150%,Java 应用程序将缩放到 150%。

见:http://openjdk.java.net/jeps/263

但是,出于测试目的,我需要能够在 Windows 10 中使用 java.exe 标志禁用缩放。我该如何实现? p>

另外,也许我可以在应用程序本身内以编程方式禁用(并重新启用)它?

【问题讨论】:

  • 你在Windows上没有找到this answer?中提到的类似配置
  • @nullpointer 当然可以,但我需要通过 java.exe 标志来完成,而不是通过 Windows 上的配置。
  • JFrame scaling in Java 9的可能重复

标签: scaling java-9 compiler-flags hidpi


【解决方案1】:

使用

System.setProperty( "sun.java2d.uiScale", "1.0" );

在您的 java 代码中,这对我有用(JDK 17)。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

如果需要,从that website 中找到另外几个有用的 JVM 参数:

-Dsun.java2d.uiScale.enabled=false
-Dsun.java2d.win.uiScaleX=1.0 -Dsun.java2d.win.uiScaleY=1.0

【讨论】:

    【解决方案3】:

    我在substance bug report 中发现了这个晦涩的选项。这解决了 Swing 应用程序的问题。

    -Dsun.java2d.uiScale=1.0

    如果您使用的是 JavaFX,则需要

    -Dprism.allowhidpi=false

    很遗憾,我找不到这些选项的官方文档

    【讨论】:

    • System.setProperty("sun.java2d.uiScale", "1.0"); 为我使用 JDK 11 和 Swing,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多