Redessiner les graphiques en Java

Je suis juste dans les graphiques en Java et j'ai un problème. J'ai créé une fenêtre JFrame (NetBeans Designer) avec un panneau Composite et j'ai dessiné quelques graphiques sur elle. Ensuite, j'ai ajouté un JButton qui a changé une variable, qui change la position X d'un carré sur un Composite.

Sur le bouton appuyez sur ce code s'execute:

drawObject.setX(150);
drawObject.repaint();

drawObject est une instance de cette classe:

public class sola extends JPanel {

    private int x = 10;

    @Override
    public void paintComponent(Graphics g){
        super.paintComponents(g);
        super.setBackground(Color.WHITE);

        g.setColor(Color.ORANGE);
        g.fill3DRect(x, 160, 100, 50, true);
    }

    public void setX(int xX){
        x = xX;
    }
}

Maintenant, lorsque j'appuie sur le JButton, le rectangle n'passer à la nouvelle position, cependant, il est toujours visible dans l'ancienne position. Seulement quand je redimensionner la fenêtre d'actualiser et le rectangle ancien disparaît. Comment puis-je résoudre ce problème, de sorte que lorsque j'appuie sur le bouton, le rectangle n'est visible que dans la nouvelle position?

Pour mieux aider plus tôt, après une SSCCE (pscode.org/sscce.html). Et si vous avez une question, n'oubliez pas d'ajouter un point d'interrogation (?).
J'mince c'est plutôt une question claire pour la première question.

OriginalL'auteur Squeazer | 2011-03-13