Java如何计算字体行间距? (计算Times New Roman中2行之间的间距)

时间:2013-11-07 19:48:53

标签: java fonts jtextarea spacing

所以我创建了一个极其可变的界面,即使字体几乎必须是可变的(只要相信我,我需要它,所以它适用于每个分辨率) 但显然,如果文本有多行,那么在不同行之间就有空格。

经过一些尝试,我发现字体之间的空间不是静态的(例如,2个像素),所以它必须是完整字体的百分比(例如,百分比是25%,并且字体大小是40像素,而间距是10像素)或某种公式。

经过一些搜索工作,我无法找到任何有关字体间距的信息,所以我认为它是特定于Java的。 不过我对此表示怀疑。由于Java没有一种方法可以改变这种间距(据我所知)。

所以我的问题是,有没有办法改变或了解Times New Roman文本的两行之间的间距?

最大的问题是我需要知道这个来创建字体... 如果需要公式: fontSize =(myTextArea.getHeight() - ([fontAscend] + [fontDescent])* 21)/ 22

P.S。我使用JTextArea并且不想使用JEditorPane

3 个答案:

答案 0 :(得分:3)

也许这就是你要追求的目标?

myTextArea.getFontMetrics().getHeight()

getFontMetricsmethod on JComponent,它会为您提供FontMetricsgetHeight() method的对象。

答案 1 :(得分:0)

行之间的间距取决于文本行是否具有下划线。

阅读FontMetrics class的介绍,了解您从未想过的关于上升和下降的所有信息。

答案 2 :(得分:0)

似乎我的具体问题(我必须创建一个字体,我需要相同的字体才能创建它),唯一的选择是使用JEditorPane并使用CSS将间距设置为特定我可以在公式中使用的值或使用代数来获得正确的值。