Bonjour tout le monde,

j'essaye de créer un genre de "Slider" comme dans les "ScrollBar", le but étant de glisser un "JPanel X" à l'intérieur d'un "JPanel Conteneur" sans qu'il sors des limites du conteneur, pour cela il a fallu se servir de deux événements souris, (MouseDrag,MouseMove) comme suit :

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
27
28
29
30
31
32
33
34
35
36
37
38
39
 
private int x = 0;    
private int y = 0;
private int dx,dy;
 
/*         Event MouseDragged       */
 
                x += evt.getX()-dx;
	        y += evt.getY()-dy;
 
                Slide.setLocation(x,y);
 
 
 
                if ( Slide.getX()<0 ){ 
 
                 Slide.setLocation( 0, Slide.getY()); 
 
                }
                if ( Slide.getY()<0 ){ 
 
                    Slide.setLocation(Slide.getX(), 0); 
 
                }
                if ( Slide.getX()+Slide.getWidth()> Slide.getParent().getWidth()){ 
 
                    Slide.setLocation( Slide.getParent().getWidth()-Slide.getWidth(), Slide.getY()); 
 
                } 
                if ( Slide.getY()+Slide.getHeight()> Slide.getParent().getHeight()){ 
 
                    Slide.setLocation( Slide.getX(), Slide.getParent().getHeight()-Slide.getHeight()); 
 
                } 
 
/*          Event MouseMove     */
 
                 dx = evt.getX();
	         dy = evt.getY();

J'arrive facilement à glisser mon Panel à l'intérieur du conteneur, mais le problème c'est qu'une fois que le curseur sorte, le Panel se fige un instant puis refonctionne, je crois qu'il prend en compte la distance parcourue à l'extérieur du conteneur mais je ne sais pas comment corriger cette erreur. Merci de bien vouloir m'aider !