0

私はしばらく探していましたが、ドキュメントも 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

それで、誰もこれを修正する方法を知っていますか?

4

2 に答える 2

7

Graphicsエラー メッセージに示されているとおり、使用するには のインスタンスが必要です。

つまり、

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 に答える