【问题标题】:How can I scale fonts on a high resolution screen?如何在高分辨率屏幕上缩放字体?
【发布时间】:2015-04-24 17:42:36
【问题描述】:

在高分辨率屏幕(我的示例,Windows 8.1)上是我的 Java 应用程序。尤其是菜单非常小,几乎不可能选择一个菜单项。

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

固定大小的字体(在我的例子中是

如何使字体可缩放,以使程序符合其大小,或者用户获得设置的可能性?

【问题讨论】:

  • 我认为完成一般任务的最佳方法是使用自定义 PLAF。
  • 旁注:请确保您使用的是 Oracle JDK,而不是 OpenJDK,因为字体抗锯齿和一些相关的 GUI 功能是封闭源代码。

标签: java swing fonts highdpi


【解决方案1】:

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

但这仍然会使应用程序看起来很糟糕,因为组件间的空间将以像素为单位,因此不会随字体大小缩放。看 http://www.javalobby.org/java/forums/t101878.html 进行更长时间的讨论。

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

【讨论】:

    猜你喜欢
    • 2016-10-21
    • 2016-07-27
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多