アプリ版:「スタンプのみでお礼する」機能のリリースについて

アプレットを勉強している初心者です。

イベントであるボタンを押すと、ある数字が描画される、というものを作ったのですがそれを消す方法で悩んでいます。白い正方形で塗りつぶすのかな、と思ったのですが、手元の入門書のコードだとpaintメソッドの中で

if(flag != 0){g.drawImage(myImg,0,0,this);

と書くだけでそれを実装できているみたいなんです。「画像が出るボタン」を押すとフラグを1にしてrepaint()メソッドでpaintメソッドを呼び出して(?repaintメソッドの説明があまりなくてrepaintメソッドの効果がいまいちよく分かりません)画像を描画して、「消すボタン」を押すとフラグを0にしてrepaint()メソッドを実行してpaintメソッドを呼び出して(?)フラグが0なので結果何もしない。という流れです。

私の感覚だと消すボタンを押してもpaintメソッド内で何もしないなら画像が出たまんまなんじゃないか?と思っているのですが、ちゃんと画像は消えます。
(本当はコードを全部載せられれば一番いいのでしょうが、本に掲載されているコードなのでムリだと思うので載せません)

どういうことが起こっているのでしょうか?また一度描画されたものを消す方法はどういう方法があるのでしょうか?

よろしくお願いします。

A 回答 (1件)

repaintが、画面を背景色で塗りつぶしてからpaintを実行するためです。

    • good
    • 1

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