我正在制作一个游戏,在菜单中我想在屏幕中央显示文本。Java中是否有一种方法可以获取/计算具有指定大小和样式的指定字体的一段文本的宽度。
马汀
该FontMetrics.stringWidth
方法就是这样做的——它将返回给定的宽度(以像素为单位)String
。
可以通过方法FontMetrics
从Graphics
对象中获取getFontMetrics
。
例如:
g.setFont(new Font("Serif", Font.BOLD, 24));
int width = g.getFontMetrics().stringWidth("Hello World!");
System.out.println(width);
结果是:
135
在Font类中,您可以使用诸如 getLineMetrics 或 getStringBounds 之类的方法来帮助您。
只需使用居中对齐的 JLabel 和适当的布局管理器,您就不必担心这一点。
JLabel label = new JLabel("Text");
frame.add(label , SwingConstants.CENTER);