Bonjour

J'essaie de creer une animation simple.

Il s'agit d'un rectangle qui se deplace vers la droite lorsque j'appuie sur la fleche de droite.

J'ai donc creer trois classes :

1 -> Principale Qui est mon JFrame contenant ma methode paint

2 -> Deplacement Qui est mon ecouteur d'evenement

3 -> Raquette Qui est mon rectangle a déplacer.


Ma classe Principale ( J'ai supprimer les imports ... )

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
public class Principale extends JFrame {
 
    public Raquette r = new Raquette(100,450);
 
    /** Creates a new instance of Principale */
    public Principale() {
 
        super("testJava2D");
        this.setVisible(true);
        this.setSize(500, 500);
 
        this.getContentPane().add(new GuiJeu());
        this.addKeyListener(new Deplacement(this));
    }
        public void paint(Graphics g){
 
        Graphics2D g2 = (Graphics2D)g;
        r.dessiner(g2);
 
    }
 
    public static void main(String [] argv){
        new Principale();
    }
}

Et ma classe Raquette

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public class Raquette {
 
    public int x;
    public int y;
 
    /** Creates a new instance of Raquette */
    public Raquette(int x,int y) {
        this.x = x;
        this.y = y;
 
    }
 
    public void dessiner(Graphics2D g){
 
        Shape r = new Rectangle2D.Float(x,y,200,20);
        g.draw(r);
    }
 
}
Apres avoir vu mains tutoriels je n'arrive pas a trouver ce qui ne vas pas ...

Le probleme est que l'affichage ne se renouvelle pas. Lorsque mon rectangle se deplace, la trace de l'ancien reste sur le JFrame ..


Est ce parceque j'utilise un Graphics2D ?

merci ..