2009-09-09 40 views
5

我正在做一個遊戲,在菜單中我想顯示在屏幕中央的文字。 有沒有在Java中的方式來獲得/計算在指定的大小和樣式指定字體一段文本的寬度。的Java:字體和像素

的Martijn

回答

11

FontMetrics.stringWidth方法做到了這一點 - 它會返回像素寬度對於給定String

通過getFontMetrics方法可以從Graphics對象獲得FontMetrics

例如:

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

System.out.println(width); 

結果是:

135 
+0

爲什麼FontMetrics對象抽象? – 2009-09-09 13:02:56

+0

感謝快速幫助。 – 2009-09-09 13:06:03

+1

的FontMetrics是抽象的,因爲其結果將取決於所使用的特定的圖形對象。 – 2009-09-09 13:13:30

1

在類Font你有這樣喜歡getLineMetrics或getStringBounds,可以幫助你的方法。

0

只需使用一個JLabel是中心對齊,並適當佈局管理器,你不必擔心這一點。

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

frame.add(label , SwingConstants.CENTER);