如何在Linux中的高dpi显示器上修复基于Java的应用程序的缩放?

我刚切换到Java 11(AdaptOpenJDK),以便我的Java Swing应用程序在不同系统缩放设置下的高dpi显示器上看起来都可以。

在Windows上可以正常使用。不管系统上配置了什么缩放比例值,java都会自动检测到它并使用它相应地缩放GUI。

但是,在Linux上,GUI不考虑系统缩放,因此,在高dpi显示器上看起来很小。

在这里阅读了一些帖子之后,我发现我可以指示java使用什么缩放值。例如,如果系统缩放为200%,则可以将以下命令行参数添加到用于启动应用程序的java命令中。

-Dsun.java2d.uiScale=2.0

当我添加上述命令行选项时,GUI在Linux上看起来很好。

我还读到可以设置GDK_SCALE环境变量。

但是,我想找到一个更好的解决方案。 理想情况下,我不需要指定要使用的缩放值。 有人知道这是否可能吗?

如果上述操作不可行,那么我想下一步是在linux中提出一个命令,该命令返回当前系统缩放值,然后使用它来设置sun.java2d.uiScale选项。

感谢您的帮助。

谢谢。

dianzishu630 回答:如何在Linux中的高dpi显示器上修复基于Java的应用程序的缩放?

您可以尝试以下一种方法:

-Dsun.java2d.ddscale=true

编辑:

如官方文档所述,“如果正在使用DirectDraw / Direct3D管道,则将此标志设置为true将启用硬件加速缩放。默认情况下,DirectDraw / Direct3D硬件缩放被禁用,以避免在现有应用程序中呈现工件。”

有关更多信息,请参见官方Oracle documentation about system properties

本文链接:https://www.f2er.com/3164218.html

大家都在问