取り敢えず何も考えずに「一歩先行くインターネット Java入門」の4章にあったSimpleAnimation.javaに変更を加えてMovingBallを作成しました。
init()メソッドではまず
width = this.size().width; height = this.size().height;
のようにしてアプレットの幅と高さを求めます。
それから
x = r; y = height / 2;
でボールの位置を定め、最後に
setBackground(Color.blue); setForeground(Color.yellow);
と背景色を青に、前景色を黄色に定めています。
このアプレットの中心部分となるrun()メソッドではThread.sleep(10)で10ミリ秒待った後、
x += moveX; y += moveY;
でボールを移動させ、
if (x <= 0 || x >= width - r) {
moveX *= -1;
}
if (y <= 0 || y >= height - r) {
moveY *= -1;
}
移動の結果アプレットからはみ出た場合は、移動方向を逆転させています。
最後にrepaint()でアプレットを再描画させます。
paint()メソッドでは単に
g.fillOval(x, y, r, r);
でボールを描くだけです。