• 締切済み

初心者です。Circle

class Circle { Paint pat; int xpos, ypos, radius; public Circle(Paint p, int x, int y, int r) { pat = p; xpos = x; ypos = y; radius = r; } public void draw(Graphics2D g) { g.setPoint(pat); g.fillCircle(xpos-radius, ypos-radius, radius); } } というソースを作りましたが、 コンパイルの際に 以下のエラーが出ます。 シンボルを見つけられません シンボル:メソッド fill Circle(int,int,int) 場所:g.fillCircle(xpos-radius, ypos-radius, radius); どこが間違っていて、どう直せばいいのか、教えてください。 お願いします。

みんなの回答

  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.3

 以下のように変更/追加すれば円が書き出されるでしょう。 import java.awt.*; import java.awt.event.*; class Circle { Paint pat; int xpos, ypos, radius; public Circle(Paint p, int x, int y, int r) { pat = p; xpos = x; ypos = y; radius = r; }; public void draw(Graphics2D g) { // g.setPoint(pat); g.setPaint(pat); // g.fillCircle(xpos-radius, ypos-radius, radius); g.fillOval(xpos-radius, ypos-radius, radius*2, radius*2); }; } class drawcircle extends Frame { Circle C; public drawcircle() { super("Draw Circle"); setSize(200, 200); setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { System.exit(0); }; }); C = new Circle(new GradientPaint((float)0.0, (float)0.0, Color.RED, (float)10.0, (float)10.0, Color.BLUE, true), 100, 100, 50); }; public void paint(Graphics g) { C.draw((Graphics2D)g); }; public void update(Graphics g) { paint(g); }; public static void main(String args[]) { new drawcircle(); }; }

noname#49664
noname#49664
回答No.2

class Oval { Paint pat; int xpos, ypos, radius; public Oval(Paint p, int x, int y, int r) { pat = p; xpos = x; ypos = y; radius = r; } public void draw(Graphics2D g) { g.setPaint(pat); g.drawOval(xpos-radius, ypos-radius, 2*radius, 2*radius); } } ↑ 何度も読み返しましたが、何をやりたいのかがまったくわかりませんでした。Circleでも大丈夫なものもあるようだとか意味がわかりません。ひょっとして、何か他の言語と勘違いしているところがありませんか? とりあえず、Javaのごく基礎的な入門書などで初歩をきちんと勉強されることをお勧めします。Webサイトでも今はいい入門のコンテンツがたくさんありますから、とりあえずそうしたもので基礎的な部分だけでもしっかり学んでください。

noname#49664
noname#49664
回答No.1

Javaには、fillCircleというメソッドは存在しません。 円を描くなら、fillOvalです。 リファレンスぐらいはチェックしておきましょう。

参考URL:
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html
stealther
質問者

お礼

まったく分からなくて質問させていただきました。 OvalじゃなくてもCircleでも大丈夫なものもあるみたいですが... 一応Ovalで以下のように自分なりに作り直してみましたが、 コンパイルはできましたが実際に円が描かれません。 どう直したらよいか、教えていただけますか。 class Oval { Paint pat; int xpos, ypos, radius; public Oval(Paint p, int x, int y, int r) { pat = p; xpos = x; ypos = y; radius = r; } public void draw(Graphics2D g) { g.setPaint(pat); g.drawOval(xpos-radius, ypos-radius, 2*radius, 2*radius); } }

関連するQ&A

専門家に質問してみよう