Java - comment faire pour effacer des graphiques à partir d'un Composite

Je suis de la création d'un programme simple où je dessine un ovale noir où je clique avec ma souris. Cependant je veux un nouveau ovale de comparaître et de l'ancien à disparaître. Comment pourrais-je aller sur le faire? J'ai foiré autour avec le removeAll() insérée dans mon mousePressed méthode, mais il ne fonctionne pas pour moi. Est le removeAll() la méthode même adapté pour cela? Ou dois-je utiliser autre chose? Désolé si la réponse est évidente, mais je suis encore nouveau à cela et essayer d'apprendre. Tout conseil serait grandement apprécié. Merci.

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class PaintPractice extends JPanel implements MouseListener {

    Random rand = new Random(); 
    int x = rand.nextInt(450);
    int y = rand.nextInt(450);

    public PaintPractice(){
        super();
        addMouseListener(this);
    }

    public static void main(String[] args){

        JFrame frame = new JFrame();
        PaintPractice panel = new PaintPractice();

        frame.setSize(500, 500);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(panel);        
    }

    public void paint(Graphics g){
        g.setColor(Color.BLACK);
        g.fillOval(x, y, 50, 50);
    }

    @Override
    public void mousePressed(MouseEvent e) {
        x = e.getX();
        y = e.getY();
        removeAll();
        repaint();      
    }

    @Override
    public void mouseClicked(MouseEvent e) {        
    }

    @Override
    public void mouseEntered(MouseEvent e) {        
    }

    @Override
    public void mouseExited(MouseEvent e) {     
    }

    @Override
    public void mouseReleased(MouseEvent e) {       
    }
}

OriginalL'auteur anonymous noob | 2015-05-02