• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javaアプレットについてですが)

Javaアプレットでボタンを押すと数字が増えるものの作り方

このQ&Aのポイント
  • Javaアプレットを使用してボタンを押すと数字が増えるものを作りたいですが、うまく動きません。どこを変更すればいいですか?
  • Javaアプレットを使用してボタンを押すと数字が増えるものを作っていますが、正常に動作しません。ソースコードに修正が必要な部分があるか教えてください。
  • Javaアプレットでボタンを押すと数字が増えるものを作成していますが、うまく動かないです。修正が必要な箇所はありますか?

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

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

要は、ボタンが押されてからrun()が実行されればいいわけです。 指定された条件は満たしていると思いますが、ボタンを複数回押すと楽しいことに。 import文省略 public class Sample7 extends Applet implements Runnable, ActionListener { int num; public void init() { Button bt = new Button("開始"); add(bt); bt.addActionListener(this); } public void actionPerformed(ActionEvent ae) { new Thread(this).start(); } public void run() { int i=0; while (true) { num = ++i; repaint(); try { Thread.sleep(1000); } catch (InterruptedException e) { } } } public void paint(Graphics g) { 省略 } }

mumein
質問者

お礼

ありがとうございます。 参考になりました。

その他の回答 (1)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

「うまく動きません」以前に、そもそもコンパイルさえできませんね。 メソッドの定義の中に他のメソッドの定義を書くことは許されていないので、まずはrun()メソッドをactionPerformed()の外に出してください。これでコンパイルして実行することができる(ただしご希望の動作とは違う)ようになります。 次に、変数numの値はボタン操作とは無関係に約1秒ごとに増えるようになっています。ボタンが押されたときにだけnumの値を増やし、画面を再描画するように直してください。 そして「ボタンを押したら数字が増える」だけなら、init()内でスレッドを作って開始する必要もないんです。

mumein
質問者

お礼

質問への返答ありがとうございます。 できればボタンを押したら数字が1秒後とに増えるようにしたいのですが、どうしたらよろしいいでしょうか?

関連するQ&A