2009-09-09 71 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);