【发布时间】:2019-03-02 08:27:51
【问题描述】:
如何使我的 Java Swing 应用程序 GUI 在高 DPI 屏幕上正确缩放给用户?
请参阅下面的屏幕截图。在顶部,您可以看到与 Ubuntu 的文件浏览器图标和 gedit 相比,该应用程序看起来多么小。在左下角,您可以大致看到应用程序的大小(并且在常规 DPI 监视器上看起来确实如此)。因此,我正在寻找一种在使用高 DPI 监视器时正确缩放应用程序 GUI 的方法。例如,gedit 在常规 DPI 和高 DPI 显示器上看起来是一样的。我希望我的应用具有这样的行为。
这是应用程序的源代码:https://github.com/baobabKoodaa/baopass
这是一个影响许多应用的极其常见的问题。我在 Ubuntu 上运行的大约一半的应用程序在没有用户任何操作的情况下正确缩放,另一半没有缩放并且看起来非常小。请注意,我主要是在寻找一种不需要用户操作的解决方案(尽管此时感谢任何帮助 - 我根本没有找到任何扩展它的方法)。
根据this,缩放应该已经可以开箱即用了。它没有。我不确定这是否是一个错误,或者除了在 Java 9 上运行应用程序之外我还应该执行一些额外的步骤吗?
【问题讨论】:
-
哪个操作系统?你的命令行是什么样子的?
-
我正在 Ubuntu 16.04 上进行测试。我主要是在寻找一种不需要用户额外操作的解决方案(尽管它也有助于找到一个扩展应用程序的命令。我确实尝试了你在另一个线程中提供的那个,
java -Dsun.java2d.uiScale=2.5 -jar filename.jar不适合我。)。 -
这个框架是什么:它是
JFrame吗?JDialog? minimal reproducible example 可能会有所帮助。一个快速而肮脏的解决方案是始终将其设置为全屏,但我想你想要一个更干净的。 -
如果 java 9 不是一个选项,我会尝试的第一件事是使用更高分辨率增加默认外观字体大小。
-
@c0der 这是一个
JFrame。我实际上使用的是 Java 9,但它仍然没有扩展。我不能简单地增加字体大小等,因为我不想破坏常规 DPI 显示器的外观。