g.drawString(p2.getName(), 800 - FontMetrics.stringWidth(p2.getName()), 40);
该行导致错误“无法使静态参考从类型FontMetrics对象的非静态方法stringWidth(字符串)。不能使静态参考非静态方法(Java)的
该getName()
方法是在播放器类中定义,和p2是类的一个实例,所以我看不出p2.getName()
是一个静态参考
g.drawString(p2.getName(), 800 - FontMetrics.stringWidth(p2.getName()), 40);
该行导致错误“无法使静态参考从类型FontMetrics对象的非静态方法stringWidth(字符串)。不能使静态参考非静态方法(Java)的
该getName()
方法是在播放器类中定义,和p2是类的一个实例,所以我看不出p2.getName()
是一个静态参考
您需要使用FontMetrics
的实例。您可以获取从Graphics
对象之一:
g.drawString(p2.getName(), 800 - g.getfontMetrics().stringWidth(p2.getName()), 40);
因为它不是 - 静态参考是stringWidth
FontMetrics.stringWidth
是一个实例方法。该错误消息是:
无法从类型使静态参考非静态方法stringWidth(字符串)的FontMetrics
的stringWidth()
方法不是静态方法和需要一个FontMetrics
的实例来访问它。
您正在以静态方式访问它,因此它会给您提供错误。
g.getFontMetrics.stringWidth("your string")
您需要'getFontMetrics()'而不是'getFontMetrics'。 –
那么你会如何解决这个问题? –
@OliverBennett取决于 - 您需要获取一个FontMetrics实例并将其称为“fontMetrics.stringWidth(p2.getName())”,“fontMetrics”是变量名称。 –