【发布时间】:2014-01-17 19:31:06
【问题描述】:
如何根据区域的宽度计算 JavaFX 中 TextArea 的一行中的可见字符数(没有水平滚动!)?
我使用等宽字体,所以所有字符都具有相同的宽度。是否可以通过字体大小来计算字体字符的宽度?
【问题讨论】:
标签: textarea width javafx character column-count
如何根据区域的宽度计算 JavaFX 中 TextArea 的一行中的可见字符数(没有水平滚动!)?
我使用等宽字体,所以所有字符都具有相同的宽度。是否可以通过字体大小来计算字体字符的宽度?
【问题讨论】:
标签: textarea width javafx character column-count
是的,可以计算它们。 即使使用自定义字体。 您可以使用 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;
【讨论】: