0

我已经搜索了一段时间,文档和谷歌都返回了一个很好的答案。我刚开始使用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

那么有谁知道如何解决这个问题?

4

2 回答 2

7

Graphics正如错误消息所说,您需要有一个要使用的实例。

IE,

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

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

但是,您将需要Graphics从某个地方获取实例,因为Graphics 构造函数protected而不是public,而类本身是abstract. (对于初学者来说,这意味着您需要在某个地方已经有了可以使用的对象,因为您不能直接为自己创建它。)

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

于 2013-03-06T19:12:13.673 回答
2

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

于 2013-03-06T19:15:33.393 回答