Mover bola en Java Swing

DESCARGAR


import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class MoverBola extends JFrame implements ActionListener{

JButton der;
JButton izq;
JButton arr;
JButton aba;
JButton res;
JButton enc;
static int distancia = 420;
static int distancia2 = 260;
static int tam = 70;

MoverBola(){

super("Dibujo de fuguras en 2D");
setSize(950,600);
setVisible(true);

setLayout (null);

der = new JButton("Derecha");
der.setBounds(800,250,100,25);
der.addActionListener(this);
        add(der);
       
        izq = new JButton("Izquierda");
izq.setBounds(20,250,100,25);
izq.addActionListener(this);
        add(izq);
       
        arr = new JButton("Arriba");
arr.setBounds(400,20,100,25);
arr.addActionListener(this);
        add(arr);
       
        aba = new JButton("Abajo");
aba.setBounds(400,500,100,25);
aba.addActionListener(this);
        add(aba);
       
        res = new JButton("Aumentar");
res.setBounds(10,10,100,25);
res.addActionListener(this);
        add(res);
        enc = new JButton("Disminuir");
enc.setBounds(10,40,100,25);
enc.addActionListener(this);
        add(enc);
}

public static void main(String[] args) {
MoverBola oImagen = new MoverBola();
oImagen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==der){
distancia=distancia+10;
repaint();
}
if(e.getSource()==izq){
distancia=distancia-10;
repaint();
}
if(e.getSource()==arr){
distancia2=distancia2-10;
repaint();
}
if(e.getSource()==aba){
distancia2=distancia2+10;
repaint(); //vuelve a dibujar
}
if(e.getSource()==res){
tam=tam+10;
repaint(); //vuelve a dibujar
}
if(e.getSource()==enc){
tam=tam-10;
repaint(); //vuelve a dibujar
}
}
public void paint (Graphics g){
//lllamada al metodo paint
super.paint(g);

//activamos el color
g.setColor(Color.blue);

//dibujamos un ovalo
g.fillOval(distancia, distancia2, tam, tam);
}
}