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 :
D'avance merci pour vos lumière...
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
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); }
Partager