Bonjour à tous,

J'ai un petit soucis avec un JPopupMenu. Voici mon code :

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) {}
          });
 
}
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.

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