我一直在搜索,文档也没有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
所以有人知道如何解决这个问题吗?
答案 0 :(得分:7)
您需要使用Graphics
的实例,正如错误消息所示。
即,
Graphics graphics = new Graphics();
graphics.drawString("hello", 10, 10);
基本上,从类中调用static
方法,而必须使用该类的实际对象调用非静态方法。
您需要从某个地方获取Graphics
实例,因为Graphics constructor是protected
而不是public
,而类本身是{{1} }。 (对于初学者来说,所有这些意味着您需要已经将对象放在某处使用,因为您无法直接为自己创建它。)
另外,旁注:单引号用于abstract
文字,而双引号用于char
文字。
答案 1 :(得分:2)
drawString()方法不是静态的。这意味着您需要Graphics(或Graphics2D)对象的实例。通常,当您使用此对象时,它将作为 paint()方法的参数传递给您。