Bonjour,
j'ai une applet.
Pour éviter le scintillement, j'utilise le double-buffering.
Quand le curseur de la souris bouge, je dessine des traits en me basant sur la position de la souris.
J'ai docn un objet zoneDessin qui étends la classe Canvas. Cet objet possède un listener mouseMoved qui appelle une méthode. Cette méthode efface l'Image précédemment créée, puis redessine les traits et ensuite les affiche.
En simplifiant voici le code :
Le problème is quand on fait glisser le curseur sur la zone en question, l'affichage des traits ne se fait que quand le curseur de la souris a arrêté de bouger, comme si suel l'évènement "arrêt bougeage souris" était pris en compte alors que dnas la sorite système, j'ai bien :Code:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 public class zoneDessin extends Applet implements MouseListener,MouseMotionListener{ Image monImage; Graphics monGraphics; int i=0; public zoneDessin(){ init(); } public void paint(Graphics g){ system.out.prinln("je peins "+i); i++; g.drawImage(monImage,0,0,500,500,this); } public void update(Graphics g){ paint(g); } private void init(){ monImage=this.createImage(500,500); monGraphics=monImage.getGraphics(); } private void dessine(int x, int y){ init(); monGraphics.drawLine(x,y,x+100,y+100); monGraphics.drawLine(x,y,x+100,y-100); this.repaint(); } public void mouseMoved(MouseEvent evt){ dessine(evt.getX(), evt.getY()); } public void mouseClicked(MouseEvent evt) {} public void mouseEntered(MouseEvent evt){} public void mouseExited(MouseEvent evt){} public void mousePressed(MouseEvent evt) { } public void mouseDragged(MouseEvent evt){ } public void mouseReleased(MouseEvent evt){ } }
Quelqu'un aurait une idée ?Citation:
je peins 0
je pens 1
je peins 2
je peins 3
je peins 4
...
je peins 50
Merci