• ベストアンサー

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

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

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

  • ベストアンサー
回答No.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(); }

w_dragon
質問者

お礼

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

その他の回答 (1)

回答No.1

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

w_dragon
質問者

お礼

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

関連するQ&A