有没有办法获取 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,则答案会有所不同。
标题几乎说明了一切。我不的意思是如何获得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,则答案会有所不同。