2015-02-23 123 views
7

在高分辨率屏幕上(我的例子,Windows 8.1)是我的Java应用程序。菜单非常小,几乎不可能选择菜单项。如何在高分辨率屏幕上缩放字体?

在正常屏幕(72 DPI)中一切正常。

固定大小的字体(在我的情况下它会有< 80px),是一个糟糕的选择。 72个DPI屏幕显示它非常大。

如何让字体可扩展以使程序符合其大小,或者用户可以设置?

+0

我认为最好的方法来处理一般任务是自定义PLAF(s)。 – 2015-02-23 12:18:01

+1

注意事项:请确保您使用Oracle JDK,而不是OpenJDK,因为字体反锯齿和某些相关的GUI功能是封闭源代码。 – Nikolay 2015-02-23 12:35:04

回答

4

您可以通过访问您的PLAF改变一个地方的默认字体大小: Java Swing on high-DPI screen

但这仍将使应用程序看起来很糟糕,因为组件间的空间会在像素,因此不会与字体大小的比例。请参阅 http://www.javalobby.org/java/forums/t101878.html进行更长时间的讨论。

我的建议是使用支持DPI的布局库,例如MigLayout,它支持以像素或DPI感知的毫米或厘米为单位指定尺寸。然后,您可以使用FontMetrics为字体查找正确的大小,从而将字体缩放和DPI识别间距耦合起来。