当Java Swing应用程序缩放到正常大小时,它在高DPI屏幕上看起来很小

Att*_*nen 11 java swing highdpi

如何使我的Java Swing应用程序GUI适用于高DPI屏幕上的用户?

请参见下面的截图.在顶部,您可以看到应用程序与Ubuntu的文件浏览器图标和gedit相比有多小.在左下角,您可以看到应用程序应该看起来大小的大小(并且可以在常规DPI监视器上查看).因此,我正在寻找一种在使用高DPI监视器时正确扩展应用程序GUI的方法.例如,gedit在常规DPI和高DPI监视器上看起来都相同.我希望我的应用程序像这样.

在此输入图像描述

以下是该应用程序的源代码:https://github.com/baobabKoodaa/baopass

这是影响许多应用程序的极其常见的问题.我在Ubuntu上运行的应用程序大约有一半是在没有用户任何操作的情况下正确缩放的,另一半没有缩放,看起来非常小.请注意,我主要是在寻找一种不需要用户操作的解决方案(虽然目前还有任何帮助 - 我还没有找到任何方法来扩展它).

根据这种缩放应该已经开箱即用.它没有.我不确定这是否是一个错误,或者除了在Java 9上运行应用程序之外还有一些额外的步骤我应该做什么?

Edw*_*uck 8

您必须告诉绘图库扩大应用程序的规模。

GDK_SCALE=2 ./应用程序

将在环境中设置适当的信息,并且小部件将按比例渲染,以便每个像素有效地占用四个像素的足迹。

请注意,加载整个 Swing 库后不会显示启动屏幕(如果您使用 Java 的启动屏幕支持),因此无论您尝试如何设置,它都不会缩放。

在某些平台上,例如 Fedora 的 Linux 发行版,也可以进行部分缩放,例如您可以设置 GDK_SCALE=1.5。请记住,它不是普遍可用的,并且不能设置为您可能想要的任何缩放比例。

最后,较旧的 JVM 完全忽略此设置,因此如果您不是使用 Java 9 或更高版本启动,则它很可能无法工作。当然,针对旧版 JVM 和不同操作系统的调整方式往往会有所不同(如果它们确实有效的话)。