如何在高分辨率屏幕上调整字体大小?

8
在高分辨率屏幕上(以Windows 8.1为例),我的Java应用程序的菜单特别小,几乎不可能选中一个菜单项。
在正常屏幕(72 DPI)上一切都正常。
固定大小的字体(在我的情况下可能会有<80px)是个糟糕的选择。72 DPI屏幕显示得非常大。
我该如何使字体可伸缩,以便程序符合其大小,或者用户获得设置的可能性?

我认为处理一般任务的最佳方式是使用自定义PLAF。 - Andrew Thompson
1
附注:请确保使用Oracle JDK而非OpenJDK,因为字体抗锯齿和一些相关的GUI功能是闭源的。 - Nikolay
1个回答

5
您可以通过访问您的PLAF在单个位置更改默认字体大小:Java Swing on high-DPI screen,但这仍然会使应用程序看起来很糟糕,因为组件间距将以像素为单位,因此不会随着字体大小而缩放。请参见http://www.javalobby.org/java/forums/t101878.html了解更长的讨论。
我的建议是使用DPI感知布局库,例如MigLayout,它支持以像素或DPI感知的mm或cm指定大小。然后,您可以使用FontMetrics找到正确的字体大小,从而将字体缩放和DPI感知间距结合起来。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接