- 締切済み
初心者です。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); どこが間違っていて、どう直せばいいのか、教えてください。 お願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ssr-y6
- ベストアンサー率71% (5/7)
以下のように変更/追加すれば円が書き出されるでしょう。 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(); }; }
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サイトでも今はいい入門のコンテンツがたくさんありますから、とりあえずそうしたもので基礎的な部分だけでもしっかり学んでください。
Javaには、fillCircleというメソッドは存在しません。 円を描くなら、fillOvalです。 リファレンスぐらいはチェックしておきましょう。
お礼
まったく分からなくて質問させていただきました。 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); } }