6

我正在制作一个游戏,在菜单中我想在屏幕中央显示文本。Java中是否有一种方法可以获取/计算具有指定大小和样式的指定字体的一段文本的宽度。

马汀

4

4 回答 4

12

FontMetrics.stringWidth方法就是这样做的——它将返回给定的宽度(以像素为单位)String

可以通过方法FontMetricsGraphics对象中获取getFontMetrics

例如:

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

System.out.println(width);

结果是:

135
于 2009-09-09T12:58:59.200 回答
1

Font类中,您可以使用诸如 getLineMetrics 或 getStringBounds 之类的方法来帮助您。

于 2009-09-09T13:01:06.640 回答
0

只需使用居中对齐的 JLabel 和适当的布局管理器,您就不必担心这一点。

于 2009-09-09T19:38:40.007 回答
0
JLabel label = new JLabel("Text");

frame.add(label , SwingConstants.CENTER);
于 2015-06-02T11:10:21.543 回答