Problème avec le Drag de JPanel
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:
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 ! ;)