Java:是否可以从Java内部禁用Windows DPI缩放?

5

我的JavaFX应用程序在Windows缩放时出现问题。有没有办法在Java中通知Windows不要对该特定应用程序进行缩放?

3个回答

3

这应该是一个系统属性 -Dprism.allowhidpi=false。因为你特别要求“在Java内部”,所以可以使用以下方法完成。

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

在你的应用程序开始之前,JavaFX初始化非常重要,即在Application.launch()之前。


0

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

如果有,请选择它,运行您的程序,看看是否有效。如果有效,那就意味着在您为全世界编译程序之后,在分发之前确保您的启动器也已禁用了该缩放。Slick2D,甚至Swing,都有类似的问题。

使用NIO.2内部更改程序属性也是可能的;但我不知道足够的细节。

如果有效,请告诉我。


我刚刚有一个可执行的jar文件,它是Windows下使用javaw.exe打开的文档。我按照你写的方法禁用了javaw.exe,但不幸的是没有效果。我有点困惑,不知道将其制作成自己的.exe文件的最佳方法,以便设置可以生效。如果您有任何想法,我会非常感激。谢谢。 - user4159962
目前没有找到,不过我会继续寻找。 - Michael Macha

0

如果你正在使用Windows操作系统,我认为你应该看看这里:Java禁用dpi感知无效。 它已经为很多人起到了作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接