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?
user3147564
问问题
950 次
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 回答