電子書籍の厳選無料作品が豊富!

お世話になります。
表題の件ですが、どうしてもうまくいかなくて困っています。
Javaアプレットを使って、テキストフィールドに入力した数だけ円を描くというプログラムを作成しているのですが、下記を実行してもエラーになってしまい、
テキストフィールドに数字を入力しても何も出てこない状態です。

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class drawCircle extends Applet implements ActionListener{
TextField Circle;

public void init(){
Circle = new TextField("", 2);
add(Circle);
Circle.addActionListener(this);
}

public void actionPerformed(ActionEvent e){
int CircNum = Integer.parseInt(Circle.getText());
repaint();

}

public void paint (Graphics g){
int x=20;
for(int i=0; i<=CircNum; i++){   ←※ここが悪いらしい
g.drawString("◎", x, 20);
x +=20;
}
}
}

※の部分では、"CircNumを解決できません"と表示されてしまいます。

テキストフィールドを作成して、テキストフィールドに入力された数字を
CircNumに代入して、その数だけ◎を描くというつもりで
上記を作成したのですが、なぜ※のようなエラーがでてきてしまうのでしょうか。
メソッドを超えてCircNumを使用しているからかな、と思うのですが、
解決方法がわかりません。
どなたかご教授いただけませんでしょうか。
どうぞよろしくお願いいたします。

A 回答 (2件)

フィールドに変数を用意すればいいと思います。



public class drawCircle extends Applet implements ActionListener{
TextField Circle;

private int CircNum =0;

(略)

public void actionPerformed(ActionEvent e){
CircNum = Integer.parseInt(Circle.getText()); ←intを消す
repaint();

}
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ご指示通り、最初にCircNumを宣言して下のintを消したらできました!
本当に助かりました。どうもありがとうございました!

お礼日時:2009/06/30 13:20

>メソッドを超えてCircNumを使用しているからかな、と思うのですが、


正解。
actionPerformedメソッドで「宣言」するのをやめて、
TextFieldのCircle同様に宣言すれば良いです。
    • good
    • 0
この回答へのお礼

できました!!!
ご回答ありがとうございます!

お礼日時:2009/06/30 13:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!