4

所以我正在创建一个极其可变的界面,即使字体几乎也必须是可变的(相信我,我需要它,所以它适用于每个分辨率)但显然,如果文本有多行,则在单独的行。

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

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

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

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

PS 我正在使用 JTextArea 并且不喜欢使用 JEditorPane

4

3 回答 3

3

也许这就是你所追求的?

myTextArea.getFontMetrics().getHeight()

getFontMetricsJComponent 上的一个方法,它为您提供一个FontMetrics具有getHeight()方法的对象。

于 2013-11-07T19:51:58.450 回答
0

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

阅读FontMetrics 类的介绍,了解有关上升和下降的所有信息。

于 2013-11-07T19:59:43.440 回答
0

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

于 2013-11-07T21:18:59.317 回答