Rendre une JWindow déplaçable
Bonjour,
Pour un projet personnel je voudrais pouvoir rendre une JWindow deplaçable.
J'ai essayé avec MouseListener et MouseMotionListener mais ma JWindow se dédouble et ne se déplace pas comme il faut...
Voici mon morceau de code :
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
|
public class DragWindow extends JWindow implements MouseListener, MouseMotionListener{
/**
* Position X de la souris au clic
*/
private int posX = 0;
/**
* POsition Y de la souris au clic
*/
private int posY = 0;
private int width = 200, height = 200;
public DragWindow()
{
this.getRootPane().addMouseListener(this);
this.getRootPane().addMouseMotionListener(this);
this.setBounds(0, 0, width, height);
this.setVisible(true);
}
/**
* On récupère la position de la souris lors du clic
*/
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
posX = e.getX();
posY = e.getY();
}
/**
* A chaque déplacement on recalcul le positionnement de la JWindow
*/
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
int depX = e.getX() - posX;
int depY = e.getY() - posY;
this.setLocation(depX, depY);
} |
D'avance merci pour vos lumière...