0

小さなグラフィックス プログラムのヘルパー メソッドを作成するように求められる宿題があります。私が抱えている問題は、エラーがあると言い続けることです。

シンボルが見つかりません - メソッド drawPolygon(gp, int, int)。

私は何が欠けていますか?

PS。GraphicsPanel コードがここにないことは知っていますが、なぜ「シンボルが見つかりません」というエラーが発生するのか不思議に思っていました。drawPolygon(gp, 50, 4) とだけ書くと、エラーなくコンパイルされますが、パネルにも何も描画されません。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class G5 {
    public static void drawPolygon(GraphicsPanel gp, int sideCount, int sideLength) {
        for (int i = 0; i < 4; i++) {
            gp.draw(sideLength);
            gp.turn(360 / sideCount);
        }
    }

    public static void main(String[] args) {
        GraphicsPanel gp = new GraphicsPanel();
        gp.setBackgroundColor(Color.BLACK);
        gp.delay(1000);
        int x = gp.getWidth() / 2;
        int y = gp.getHeight() / 2;
        gp.setLocation(x, y);

        gp.setColor(Color.RED);
        gp.drawPolygon(gp, 50, 4);

        gp.clear();
    }
}
4

2 に答える 2

0

メソッドは G5 クラスの静的メソッドです。GraphicsPanel のインスタンス メソッドではありません。したがって、次を使用して呼び出す必要があります

G5.drawPolygon(gp, 50, 4);

それ以外の

gp.drawPolygon(gp, 50, 4);

あなたがやっているようにそれを呼び出すことができるようにするには、 static キーワードなしで、メソッドを GraphicsPanel クラス (またはそのスーパークラスのいずれか) 内で定義する必要があります。

Java チュートリアルのこのセクションを読んで、インスタンス メソッドと静的メソッドの違いを理解してください。

于 2012-10-28T11:16:45.480 に答える
0
 gp.drawPolygon(gp, 50, 4);

GraphicsPanelクラスではなく、インスタンスでメソッドを探しています。静的メソッドなので使用

G5.drawPolygon(gp, 50, 4);

代わりは

于 2012-10-28T11:17:51.970 に答える