Java:字体和像素

Java:字体和像素,java,fonts,font-size,Java,Fonts,Font Size,我正在制作一个游戏,在菜单中我想在屏幕中央显示文本。 Java中是否有一种方法可以获取/计算具有指定大小和样式的指定字体中文本的宽度 Martijn该方法就是这样做的——它将返回给定字符串的宽度(以像素为单位) 可以通过该方法从对象获取FontMetrics 例如: g.setFont(new Font("Serif", Font.BOLD, 24)); int width = g.getFontMetrics().stringWidth("Hello World!"); System.out

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

Martijn

该方法就是这样做的——它将返回给定
字符串的宽度(以像素为单位)

可以通过该方法从对象获取
FontMetrics

例如:

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

System.out.println(width);
结果是:

135

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

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

为什么FontMetrics是抽象的??FontMetrics是抽象的,因为结果取决于所使用的特定图形对象。
JLabel label = new JLabel("Text");

frame.add(label , SwingConstants.CENTER);