【发布时间】:2020-03-01 03:36:21
【问题描述】:
我刚刚切换到 java 11 (AdaptOpenJDK),这样我的 java Swing 应用程序在不同系统缩放设置下的高 dpi 显示器上看起来还不错。
在 Windows 上运行正常。无论系统上配置的缩放值如何,java 都会自动检测并使用它来相应地缩放 GUI。
但是,在 Linux 上,GUI 不考虑系统缩放,因此在高 dpi 显示器上看起来很小。
在这里阅读了一些帖子后,我发现我可以指示 java 使用什么缩放值。例如,如果系统缩放为 200%,那么我可以将以下命令行参数添加到用于启动应用程序的 java 命令中。
-Dsun.java2d.uiScale=2.0
当我添加上述命令行选项时,Linux 上的 GUI 看起来不错。
我还读到我可以设置 GDK_SCALE 环境变量。
不过,我想找到一个更好的解决方案。 理想情况下,我不需要指定要使用的缩放值。 有人知道这是否可能吗?
如果上述方法不可行,那么我想我的下一步将是在 linux 中提出一个返回当前系统缩放值的命令,并使用它来设置 sun.java2d.uiScale 选项。
感谢任何帮助。
谢谢。
【问题讨论】:
-
貌似和这个问题有关:bugs.openjdk.java.net/browse/JDK-8260270
-
这不是java问题。这是“the”linux 显示管理器的问题。我还有一个高 dpi 显示器,这会导致 gui 的大小出现问题。因为我只用xorg,我用
Xft.dpi: 140在.Xresources做的(xrandr没用)以前的hdpi问题应该解决openjdk.java.net/jeps/263
标签: java linux swing scaling highdpi