Java 如何获得字体的行高,如JTextArea?

Java 如何获得字体的行高,如JTextArea?,java,swing,fonts,jtextarea,fontmetrics,Java,Swing,Fonts,Jtextarea,Fontmetrics,我需要得到从一行基线到下一行基线的距离,与JTextArea中的布局相同。为此,我只有指定字体大小的字体 我的问题是,在字体上,我只能获得LineMetrics或FontMetrics,它们都有不同大小的行(getAscent/getHeight/getDescent),具体取决于当前文本-例如,如果有字母f,则上升更大,如果有g,则下降 有没有办法获得“全局”字体高度属性?因此,我将能够正确地在图形2d上绘制文本。来自JavaDoc,用于: 获取此字体中文本行的标准高度。这是 相邻文本行基线之

我需要得到从一行基线到下一行基线的距离,与JTextArea中的布局相同。为此,我只有指定字体大小的字体

我的问题是,在字体上,我只能获得LineMetrics或FontMetrics,它们都有不同大小的行(getAscent/getHeight/getDescent),具体取决于当前文本-例如,如果有字母
f
,则上升更大,如果有
g
,则下降

有没有办法获得“全局”字体高度属性?因此,我将能够正确地在图形2d上绘制文本。

来自JavaDoc,用于:

获取此字体中文本行的标准高度。这是 相邻文本行基线之间的距离。这是总数 领先+上升+下降。由于四舍五入,这可能不是 与getAscent()+getDescent()+getLeading()相同。没有 确保以此距离间隔的文本行不相交; 如果某些字符超出了 标准上升或标准下降度量


因此,如果字体的实现正确,这应该是两行文本之间的距离。

您可能会发现
字形向量
更有用,如中所述。另一种方法是将整个文本放入HTML格式的标签中,然后使用标签的首选大小作为生成文本的宽度/高度,如中所示。如何实例化FontMetrics对象?类本身是抽象的。@ArtOfWarfare:您可以从
图形
对象获得它:另一种(更简单的?)获取FontMetrics的方法是来自JComponent的getFontMetrics()方法。类似于:myTextArea.getFontMetrics(myTextArea.getFont())