Java 如何获得字体的行高,如JTextArea?
我需要得到从一行基线到下一行基线的距离,与JTextArea中的布局相同。为此,我只有指定字体大小的字体 我的问题是,在字体上,我只能获得LineMetrics或FontMetrics,它们都有不同大小的行(getAscent/getHeight/getDescent),具体取决于当前文本-例如,如果有字母Java 如何获得字体的行高,如JTextArea?,java,swing,fonts,jtextarea,fontmetrics,Java,Swing,Fonts,Jtextarea,Fontmetrics,我需要得到从一行基线到下一行基线的距离,与JTextArea中的布局相同。为此,我只有指定字体大小的字体 我的问题是,在字体上,我只能获得LineMetrics或FontMetrics,它们都有不同大小的行(getAscent/getHeight/getDescent),具体取决于当前文本-例如,如果有字母f,则上升更大,如果有g,则下降 有没有办法获得“全局”字体高度属性?因此,我将能够正确地在图形2d上绘制文本。来自JavaDoc,用于: 获取此字体中文本行的标准高度。这是 相邻文本行基线之
f
,则上升更大,如果有g
,则下降
有没有办法获得“全局”字体高度属性?因此,我将能够正确地在图形2d上绘制文本。来自JavaDoc,用于:
获取此字体中文本行的标准高度。这是
相邻文本行基线之间的距离。这是总数
领先+上升+下降。由于四舍五入,这可能不是
与getAscent()+getDescent()+getLeading()相同。没有
确保以此距离间隔的文本行不相交;
如果某些字符超出了
标准上升或标准下降度量
因此,如果字体的实现正确,这应该是两行文本之间的距离。您可能会发现
字形向量
更有用,如中所述。另一种方法是将整个文本放入HTML格式的标签中,然后使用标签的首选大小作为生成文本的宽度/高度,如中所示。如何实例化FontMetrics对象?类本身是抽象的。@ArtOfWarfare:您可以从图形对象获得它:另一种(更简单的?)获取FontMetrics的方法是来自JComponent的getFontMetrics()方法。类似于:myTextArea.getFontMetrics(myTextArea.getFont())