• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:(長文です。すみません。)repaintをコードに書いてもupdateが実行されなくて困ってます。)

(長文です。すみません。)repaintをコードに書いてもupdateが実行されなくて困ってます。

このQ&Aのポイント
  • マルチスレッドのアプレットを作っていますが、repaintメソッドがキー入力の場合には正常に実行されますが、0.3秒毎に実行されるべき部分が実行されません。何が問題なのでしょうか?
  • この問題を解決するためには、runメソッド内でrepaintを呼び出す部分を修正する必要があります。
  • 具体的には、repaintメソッドを呼び出す前にThread.sleep(300)を実行することで、0.3秒毎にrepaintが実行されるようになります。

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

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんばんは。 >RPG hero = new RPG(); >Thread heroStep = new Thread(hero); >heroStep.start();  まず、思いつくのが、RPGクラスのインスタンスをひとつ余分に作っているのが問題ですね。  これだと、RPGクラスのインスタンスが二つあることになります。  runメソッド内で表示されていないRPGクラスのrepaintを呼んでいることになります。  上記コードは、 Thread heroStep = new Thread(this); heroStep.start();  こう書くべきだと思います。

BO-BO-keshi
質問者

お礼

わざわざご回答下さいましてありがとうございます! 全くPecoPlusさんのおっしゃる通りでした。まだよく分かっていない事が山のようにありそうです。でも、その分、おととい、きのうと、毎日少しずつ新しい知識が増えてる気がします。日々勉強です(笑) 最後になりましたが、早急かつ、たいへん分かりやすいご回答を下さいまして、ほんとうにありがとうございました!