4

TextArea領域の幅に応じて、JavaFXの a の 1 行 (水平スクロールなしで!) に表​​示される文字数をどのように計算しますか?
等幅フォントを使用しているため、すべての文字の幅は同じです。フォントサイズでフォントcharの幅を計算することは可能ですか?

4

1 に答える 1

1

はい、それらを計算することは可能です。カスタムフォントでも。FontMetrics クラスを使用できます。

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

しかし、これは間違った方向だと思いますか?

ただし、フォントが等幅の場合は、1 文字の幅を計算し、textArea の幅を 1 文字の幅で割るだけで、1 行あたりの最大文字数を取得できます。

double widthPerChar = fontMetrics.computeStringWidth("A");
double maxCharsPerLine = textArea.getWidth() / widthPerChar;
于 2014-11-13T10:53:49.017 に答える