0
g.drawString(p2.getName(), 800 - FontMetrics.stringWidth(p2.getName()), 40);

该行导致错误“无法从类型 FontMetrics 对非静态方法 stringWidth(String) 进行静态引用。

getName()方法是在播放器类中定义的,而p2是该类的一个实例,所以我看不到p2.getName()静态引用如何。

4

4 回答 4

3

您需要使用FontMetrics. 您可以从Graphics对象中获取一个:

g.drawString(p2.getName(), 800 - g.getfontMetrics().stringWidth(p2.getName()), 40);
于 2013-07-02T21:48:57.287 回答
2

因为它不是 - 静态引用是stringWidth.

FontMetrics.stringWidth是一个实例方法。错误信息是:

无法从类型FontMetrics对非静态方法stringWidth(String)进行静态引用

于 2013-07-02T21:43:43.817 回答
1

stringWidth()方法不是静态方法,需要一个实例FontMetrics来访问它。

您正在将它作为静态方法访问,因此它会给您错误。

于 2013-07-02T21:45:03.783 回答
1
g.getFontMetrics.stringWidth("your string")
于 2013-07-02T21:51:42.067 回答