Javaで文字列の長さ(ピクセル単位)を計算するには?
Swing を使用しない方が望ましい。
編集: Java2D で drawString() を使用して文字列を描画し、その長さをワード ラッピングに使用したいと思います。
Javaで文字列の長さ(ピクセル単位)を計算するには?
Swing を使用しない方が望ましい。
編集: Java2D で drawString() を使用して文字列を描画し、その長さをワード ラッピングに使用したいと思います。
AWT を使用するだけの場合は、Graphics.getFontMetrics
(オプションで、デフォルト以外のフォントの場合はフォントを指定して) を使用して を取得しFontMetrics
、FontMetrics.stringWidth
指定された文字列の幅を見つけます。
たとえば、 というGraphics
変数がある場合はg
、次のように使用します。
int width = g.getFontMetrics().stringWidth(text);
他のツールキットについては、より多くの情報を提供する必要があります。それは常にツールキットに依存します。
常にツールキットに依存する必要はありません。または、Web コンテナーまたはヘッドレス環境に存在しないグラフィックス オブジェクトを最初に取得する必要があるため、FontMetrics アプローチを常に使用する必要もありません。
これを Web サーブレットでテストしたところ、テキスト幅が計算されました。
import java.awt.Font;
import java.awt.font.FontRenderContext;
import java.awt.geom.AffineTransform;
...
String text = "Hello World";
AffineTransform affinetransform = new AffineTransform();
FontRenderContext frc = new FontRenderContext(affinetransform,true,true);
Font font = new Font("Tahoma", Font.PLAIN, 12);
int textwidth = (int)(font.getStringBounds(text, frc).getWidth());
int textheight = (int)(font.getStringBounds(text, frc).getHeight());
これらの寸法に必要な値を追加して、必要なマージンを作成します。