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