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 !
Partager