Bonjour à tous,
J'ai un petit soucis avec un JPopupMenu. Voici mon code :
En gros, un evenement déclenche l'apparition d'un JPopupMenu, grâce aux coordonnées je fais en sorte que la souris se trouve à l'interieur du JPopupMenu, et que celui-ci disparaisse dès que la souris en sort.
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 JPopupMenu popup = new JPopupMenu(); popup.add(new JMenuItem("Menu 1")); popup.addSeparator(); popup.add(new JMenuItem("Menu 2")); popup.add(new JMenuItem("Menu 3")); popup.setLocation(_mouseRealPoint.x-10, _mouseRealPoint.y-10); //_mouseRealPoint.x et _mouseRealPoint.y correspondent aux positions de la souris popup.setVisible(true); popup.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) {} @Override public void mousePressed(MouseEvent e) {} @Override public void mouseExited(MouseEvent e) { ((JPopupMenu)e.getSource()).setVisible(false); } @Override public void mouseEntered(MouseEvent e) {} @Override public void mouseClicked(MouseEvent e) {} }); }
Cela fonctionne très bien sans Separator, mais dès que j'ajoute le Separator (3ème ligne de mon code), si ma souris survol/traversse le Separator, cela déclenche l'évenement mouseExited() et mon JPopupMenu disparait.
Quelqu'un peut il m'expliquer pourquoi ? En esperant vous avoir donné suffisemment d'éléments,
Merci d'avance
Partager