こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

初心者です。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);

どこが間違っていて、どう直せばいいのか、教えてください。
お願いします。

投稿日時 - 2007-07-09 01:02:02

QNo.3151343

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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();
};

}

投稿日時 - 2008-10-18 13:46:52

ANo.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サイトでも今はいい入門のコンテンツがたくさんありますから、とりあえずそうしたもので基礎的な部分だけでもしっかり学んでください。

投稿日時 - 2007-07-09 23:35:22

ANo.1

Javaには、fillCircleというメソッドは存在しません。
円を描くなら、fillOvalです。

リファレンスぐらいはチェックしておきましょう。

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

投稿日時 - 2007-07-09 09:09:30

お礼

まったく分からなくて質問させていただきました。
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);
}
}

投稿日時 - 2007-07-09 19:57:02

あなたにオススメの質問