2009-03-20 10 views
1

私は "システム"、Font.BOLD、90 "フォントで描かれた文字列をJavaで中心化しようとしています。私は(width/2 - (font.size/2 * num_of_chars))しようとしましたが、うまくいきませんでした。描画された文字列をウィンドウサイズの中心に置きますか?

g2d.setFont(new Font("system", Font.BOLD, 90)); 
g2d.drawString("Pause", (int) ((800/2) - ((Font.getSize()/2) * 5)),270); 
+0

をサンプルコードを追加したり、質問を明確にしてください - あなたは、例えば、AWTオブジェクトの上に描画されていますか?それはどうしたらうまくいかないのですか? – Kai

答えて

4

getFontMetrics()を使用してください。 getStringBounds(String, Graphics)現在のフォントで文字列の境界を取得します。

だから、このようなものになります。

g2d.setFont(new Font("system", Font.BOLD, 90)); 
String msg = "Pause"; 
Rectangle2D bounds = g2d.getFontMetrics().getStringBounds(msg, g2d); 
g2d.drawString(msg, (int) ((getWidth() + bounds.getWidth())/2), 270); 
+0

getStringBounds()にrect2Dの代わりにrectを返す方法がありますか? – William

+0

編集:nevermind。 2DにもgetWidthメソッドがあることがわかります。ありがとう。 – William