有没有办法获取 JTextArea 中文本的大小?

Is there anyway to get the size of the text in a JTextArea?

标题几乎说明了一切。我的意思是如何获得JTextArea的大小。我需要获取实际文本的大小。不过,我完全愿意接受建议。如果你有一个不稳定的解决方法,涉及使用 JTextArea 以外的东西但仍然有类似的效果,我很想听听。谢谢!

如果你想获得 Font 的大小,那么你可以使用:

JTextArea area = new JTextArea();
Font font = area.getFont();
int fontSize = font.getSize();

或者,如果您自己设置文本区域的字体,您将事先知道字体大小是多少,例如:

Font font = new Font("Dialog", Font.PLAIN, 12);
area.setFont(font);

如果这不是真正的问题,而是您想知道字体的某些部分有多大(以像素为单位),您可以对字体使用 FontMetrics 对象。

FontMetrics fontMetrics = area.getFontMetrics(font);

使用 FontMetrics 对象,您应该能够找出与字体大小和距离相关的所有内容。您可以在此处找到有关如何使用 FontMetrics 对象的更多信息:Javanotes, Measuring Text.

希望对您有所帮助:)

注意:这适用于 Swing,如果您使用不同类型的 TextArea,则答案会有所不同。