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

解決済みの質問

テキストフィールドに入力した数だけ円を表示する

お世話になります。
表題の件ですが、どうしてもうまくいかなくて困っています。
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を使用しているからかな、と思うのですが、
解決方法がわかりません。
どなたかご教授いただけませんでしょうか。
どうぞよろしくお願いいたします。

投稿日時 - 2009-06-30 12:51:02

QNo.5086650

すぐに回答ほしいです

質問者が選んだベストアンサー

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

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();

}

投稿日時 - 2009-06-30 13:07:57

お礼

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

投稿日時 - 2009-06-30 13:20:43

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

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

回答(2)

ANo.1

>メソッドを超えてCircNumを使用しているからかな、と思うのですが、
正解。
actionPerformedメソッドで「宣言」するのをやめて、
TextFieldのCircle同様に宣言すれば良いです。

投稿日時 - 2009-06-30 13:07:40

お礼

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

投稿日時 - 2009-06-30 13:19:09

あなたにオススメの質問