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」是變量名稱。 –