2つの変更をします。
1.一つ前の円を消して軌跡を残さない
2.右端までいったら左へ進むようにし、左端へいったら右へ進むようにする

MovDisk2.javaをもとに、スレッドを使う MakeDisk6Move の部分だけ変わります。
//円を動かすクラス
class MakeDisk6Move extends Thread {
MyPanel pnl;
BufferedImage image;
Graphics bfg;
Color bc;
int x = 100;
int y ;
int lx =0;
int d = 10;
int dx = 10;
int xmax,ymax;
//コンストラクタpublic Color getBackground()/java.awt.Component
public MakeDisk6Move(MyPanel pn) {
pnl = pn;
image = pn.buffimg;
bfg = image.createGraphics();
xmax = image.getWidth();
ymax = image.getHeight();
y = (int)(ymax*Math.random());
bc = pnl.getBackground();
}
@Override //add
public void run() { //add
bfg.setColor(Color.red);
bfg.drawString(getName(),x-90,y);
while ( true ){
bfg.setColor(bc);
bfg.fillOval(lx-d/2,y-d/2,d,d);
bfg.setColor(Color.red);
bfg.fillOval(x-d/2,y-d/2,d,d);
pnl.repaint();
lx = x;
x+=dx;
if (x >xmax){
x = 2*xmax-x;
dx = -dx;
}
if (0 > x){
x = -x;
dx = -dx;
}
//100ms(0.1秒)停止
try {
Thread.sleep(100);
}
catch(InterruptedException ex) {
System.err.println(ex);
}
}//end of while
}//add end of run
}//end of class MakeDisk6Move
強調部分が主要な変更です。
次の●を描くまえに前の●を消します。そのために2つの情報が必要です。
前の●の位置 : lx に前の x を記憶しています。
背景色 : コンストラクタで pnl.getBackground() により背景色を得て、bc におぼえて置きます。
やはり複数の●を動かせますし、green, blue も生きています。

左右で跳ね返ることを確認しなさい。