2013-07-02 70 views
0
g.drawString(p2.getName(), 800 - FontMetrics.stringWidth(p2.getName()), 40); 

該行導致錯誤「無法使靜態參考從類型FontMetrics對象的非靜態方法stringWidth(字符串)。不能使靜態參考非靜態方法(Java)的

getName()方法是在播放器類中定義,和p2是類的一個實例,所以我看不出p2.getName()是一個靜態參考

回答

3

您需要使用FontMetrics的實例。您可以獲取從Graphics對象之一:

g.drawString(p2.getName(), 800 - g.getfontMetrics().stringWidth(p2.getName()), 40); 
2

因爲它不是 - 靜態參考是stringWidth

FontMetrics.stringWidth是一個實例方法。該錯誤消息是:

無法從類型使靜態參考非靜態方法stringWidth(字符串)的FontMetrics

+0

那麼你會如何解決這個問題? –

+0

@OliverBennett取決於 - 您需要獲取一個FontMetrics實例並將其稱爲「fontMetrics.stringWidth(p2.getName())」,「fontMetrics」是變量名稱。 –

1

stringWidth()方法不是靜態方法和需要一個FontMetrics的實例來訪問它。

您正在以靜態方式訪問它,因此它會給您提供錯誤。

1
g.getFontMetrics.stringWidth("your string") 
+1

您需要'getFontMetrics()'而不是'getFontMetrics'。 –