JavaFX - TextArea的一行中有多少个字符?

时间:2013-12-30 21:06:27

标签: textarea width javafx character column-count

如何根据区域的宽度计算JavaFX中TextArea的一行中的可见字符数(没有水平滚动!)? 我使用等宽字体,因此所有字符都具有相同的宽度。是否可以通过字体大小计算字体字符的宽度?

1 个答案:

答案 0 :(得分:1)

是的,可以计算它们。 即使使用自定义字体。 您可以使用FontMetrics类。

Font font = Font.font("YourFont", 14);
FontMetrics fontMetrics = Toolkit.getToolkit().getFontLoader().getFontMetrics(font);
double length = fontMetrics.computeStringWidth("The text ");

但我猜这是错误的方向?

但如果您的字体是等宽字体,则可以计算一个字符的宽度 然后只需将textArea的宽度除以一个字符的宽度即可得到每行的最大字符数。

double widthPerChar = fontMetrics.computeStringWidth("A");
double maxCharsPerLine = textArea.getWidth() / widthPerChar;