プロが教えるわが家の防犯対策術!

javaのguiのプログラミングなのですが、ボールを動かし軌跡を残したいのです。repaintを使って、ボールを動かして行きながら軌跡を残すプログラムを作った所、ボールはちゃんと動いたのですが、軌跡は書いては消えて書いては消えてをくりかえしているようで、画面に残らないんです。解決方法をお教えください。

A 回答 (3件)

「ボールの軌跡」というのはすなわち


「それまでにボールがあったところ」
だよね.

だから,
「それまでにボールがあったすべての位置でボールを描く」
だけ.

この回答への補足

ボールの軌跡がランダムで計算できないのです。
ボールの軌跡は線で表示したいです。

補足日時:2011/04/13 23:01
    • good
    • 0

「ボールの軌跡がランダム」ってどういうこと?


そして, 「計算できない」ものがなんで「表示できる」と思えるの?

「ボールの過去の位置」をつなぐなら当然できる. 「それまでにボールがあった位置」を覚えておけばいい. ただそれだけ.
    • good
    • 0

Appletか何かで作っていますか?


repaint()を呼ぶとupdate()が呼ばれ、そこからさらにpaint()が呼ばれます。しかし、update()はpaint()を呼ぶ前に画面をクリアします。一度書いた軌跡が消されてしまうのはこのためです。
画面のクリアを防ぐためにはupdate()をオーバーライドしてpaint()だけを実行するように変えればいいです。
public void update(Graphics g) {
paint(g);
}
    • good
    • 1

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