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

que les résultats en ligne dans l'erreur "Impossible de faire une référence statique à la méthode non statique stringWidth (String) desNe peut pas faire référence statique à la méthode non statique (Java)

Type FontMetrics. la méthode getName() est définie dans la classe de joueur, et p2 est une instance de cette classe, donc je ne vois pas comment p2.getName() est une référence statique

Répondre

3

Vous devez utiliser une instance de FontMetrics. Vous pouvez en obtenir un à partir de l'objet Graphics:

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

Parce que ce n'est pas -. la référence statique est stringWidth

.

FontMetrics.stringWidth est une méthode d'instance. Le message d'erreur est:

Impossible de faire une référence statique à la méthode non statique stringWidth (String) du type FontMetrics

+0

Alors, comment voulez-vous résoudre ce problème? –

+0

@OliverBennett cela dépend - vous devez obtenir une instance de FontMetrics et l'appeler comme 'fontMetrics.stringWidth (p2.getName())', 'fontMetrics' est le nom de la variable. –

1

La méthode stringWidth() n'est pas une méthode statique et besoins une instance de FontMetrics pour y accéder.

Vous y accédez en tant que méthode statique, il vous donne donc l'erreur.

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

Vous avez besoin de 'getFontMetrics()' au lieu de 'getFontMetrics'. –

Questions connexes