4

How does one calculate the number of visible characters in one row (without horizontal scrolling!) of a TextArea in JavaFX depending on the width of the area?
I use a monospaced font, so all chars have the same width. Is it possible to calculate the width of a font char by its font size?

4

1 回答 1

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;
于 2014-11-13T10:53:49.017 回答