Bonjour,
je crée un petit widget pour lequel j'ai enlevé la barre supérieure du JFrame. L'utilisateur doit cependant tout de même pouvoir déplacer le widget et pour cela, je voudrais pouvoir déplacer le JPanel principal en suivant le pointeur de la souris.
J'ai donc affecté un MouseMotionListener et un MouseListener à mon JPanel et je calcule la différence entre deux positions du curseur de la souris pour l'ajouter à la position de la fenêtre.
Mon problème est que la fenêtre ne suit pas correctement le pointeur de la souris et qu'elle semble même "sauter" pour rattraper le curseur. Effet plutôt sympa mais ça n'est pas ce que je recherche
Voilà le code des Listeners :
Peut-être y a-t-il une meilleure solution, plus simple, pour faire ce que je veux faire ?
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 mainPane.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub if(SwingUtilities.isLeftMouseButton(e)){ oldX = e.getX(); oldY = e.getY(); } } }); mainPane.addMouseMotionListener(new MouseMotionAdapter(){ public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub windowX += (e.getX()-oldX); windowY += (e.getY()-oldY); setLocation(windowX, windowY); oldX = e.getX(); oldY = e.getY(); } });
Partager