【问题标题】:Java: Is it possible to disable Windows DPI scaling from within java?Java:是否可以在 java 中禁用 Windows DPI 缩放?
【发布时间】:2019-10-02 18:41:48
【问题描述】:

Windows 缩放正在弄乱我的 JavaFX 应用程序的 UI。 java中有没有办法让windows知道这个特定的应用程序不应该被缩放? 谢谢

【问题讨论】:

    标签: java


    【解决方案1】:

    这应该是可能的系统属性-Dprism.allowhidpi=false。正如您在“Java 内”特别询问的那样,这可以使用以下方法来完成。

    System.setProperty("prism.allowhidpi", "false);
    

    重要的是,在 JavaFX 初始化之前,即在 Application.launch() 之前,这是在应用程序的最开始时

    【讨论】:

      【解决方案2】:

      我还没有尝试使用 JavaFX,但这是一个经常性的问题,可能会受到程序 (exe) 属性的影响。尝试选择您的编辑器(Netbeans.exe 或 Eclipse.exe),选择属性,然后切换到兼容性选项卡。在该选项卡上,您应该会看到一个标记为“在高 DPI 设置下禁用显示缩放”的选项。

      如果你这样做了,选择它,运行你的程序,看看它是否有效。如果是这样,那仅意味着在为世界其他地方编译程序之后,您确保您的启动器在分发之前也已禁用缩放。 Slick2D,甚至 Swing,也有类似的问题。

      还应该可以使用 NIO.2 在内部更改程序属性;但我对细节的了解还不够。

      让我知道这是否有效。

      【讨论】:

      • 我刚刚有个可执行jar,是windows下的一个文件,用javaw.exe打开。我像你为 javaw.exe 写的那样禁用了它,但不幸的是它没有效果。我有点困惑,什么是最好的方法来把它变成它自己的 .exe 文件,设置可以工作。如果您有任何想法,我将不胜感激。谢谢
      • 还没有,但我会继续寻找。
      【解决方案3】:

      如果您使用的是 Windows,我认为您应该看看这里:Java disable dpi-aware not working。 它对很多人都有效。

      【讨论】:

        猜你喜欢
        • 2016-07-27
        • 1970-01-01
        • 2018-04-19
        • 2021-12-15
        • 1970-01-01
        • 2012-02-22
        • 2014-11-22
        • 1970-01-01
        • 2018-11-30
        相关资源
        最近更新 更多