我如何使用非静态方法?

时间:2013-03-06 19:10:43

标签: java static drawstring

我一直在搜索,文档也没有Google给出了一个很好的答案。我刚开始使用java,所以请帮帮我。

我收到错误
Graphics.drawString('hello',10, 10);

然而,所有文档告诉我的是我需要使用str,int,int。 我的错误是:

Cannot make a static reference to the non-static method drawString(str,int,int) from the type Graphics

所以有人知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:7)

您需要使用Graphics的实例,正如错误消息所示。

即,

Graphics graphics = new Graphics();
graphics.drawString("hello", 10, 10);

基本上,从类中调用static方法,而必须使用该类的实际对象调用非静态方法。

您需要从某个地方获取Graphics实例,因为Graphics constructorprotected而不是public,而类本身是{{1} }。 (对于初学者来说,所有这些意味着您需要已经将对象放在某处使用,因为您无法直接为自己创建它。)

另外,旁注:单引号用于abstract文字,而双引号用于char文字。

答案 1 :(得分:2)

drawString()方法不是静态的。这意味着您需要Graphics(或Graphics2D)对象的实例。通常,当您使用此对象时,它将作为 paint()方法的参数传递给您。