2009-09-09 14 views
5

私はゲームを作っています。メニューでは、画面の中央にテキストを表示したいと考えています。 指定されたサイズとスタイルで、指定されたフォントでテキストの幅を取得/計算する方法がJavaにありますか。それは与えられたStringのために幅をピクセル単位で返します -Java:フォントとピクセル

マルタイン

答えて

11

FontMetrics.stringWidth方法は、まさにそれが行います。

GraphicsオブジェクトからメソッドでFontMetricsを取得することができます。

例えば:

g.setFont(new Font("Serif", Font.BOLD, 24)); 
int width = g.getFontMetrics().stringWidth("Hello World!"); 

System.out.println(width); 

結果でした:クラスで

135 
+0

なぜFontMetrics抽象化ですか? –

+0

速いヘルプに感謝します。 –

+1

結果は使用される特定のグラフィックスオブジェクトに依存するため、FontMetricsは抽象です。 –

1

あなたがそのようなあなたを助けることにgetLineMetricsまたはgetStringBoundsのようなメソッドを持っていFont

0

中央に位置するJLabelと適切なレイアウトマネージャを使用するだけで、これについて心配する必要はありません。

0
JLabel label = new JLabel("Text"); 

frame.add(label , SwingConstants.CENTER); 
関連する問題