我正在开发一个Java Swing应用程序,该应用程序需要在比开发时小得多的屏幕尺寸上运行。
不幸的是,布局严重失真,主要是因为字体显示相对较大。
大多数字体大小都是使用 JLabels 和 JButtons 中的嵌入式 html 设置的。
如何强制 Swing 中的字体大小在不同分辨率下的像素中相等?
根据 javadocs 从 Toolkit(.getToolKit()).getScreenResolution() 开始:"以每英寸点数返回屏幕分辨率"。接下来,为您的屏幕和Font
创建一个 FontMetrics Object
(有多种方法可以执行此操作)。然后,您可以使用具有屏幕分辨率的FontMetrics.getHeight()来确定它将显示的大小。您可以使用Font.deriveFont(float)
,直到大小与您想要的大小相同或尽可能相似