Question

Est-ce que tout savoir si les conditions suivantes sont les comportements attendus en termes de ce que s sont tirés MouseEvent? On semble manquer ou consommé ailleurs.

  1. Faites un clic droit sur l'affichage et JPanel JPopupMenu:

    MousePressed java.awt.event.MouseEvent[MOUSE_PRESSED,
      (469,347),absolute(2214,490),button=3,modifiers=Meta+Button3,
      extModifiers=Button3,clickCount=1]
    
    MouseReleased java.awt.event.MouseEvent[MOUSE_RELEASED,
      (469,347),absolute(2214,490),button=3,modifiers=Meta+Button3,
      extModifiers=Meta,clickCount=1]
    
    MouseClicked java.awt.event.MouseEvent[MOUSE_CLICKED,
      (469,347),absolute(2214,490),button=3,modifiers=Meta+Button3,
      extModifiers=Meta,clickCount=1]
    

    Jusqu'à présent, si bien tous les 3 de bouton 3 et dans l'ordre correct

  2. Avec montrant toujours à gauche MousePressed-cliquez quelque part dans le <=> pas dans le <=>:

    Ce qui est arrivé à l'événement <=>?

    MouseReleased java.awt.event.MouseEvent[MOUSE_RELEASED,
      (452,339),absolute(2197,482),button=1,modifiers=Button1,clickCount=1]
    
    MouseClicked java.awt.event.MouseEvent[MOUSE_CLICKED,
      (452,339),absolute(2197,482),button=1,modifiers=Button1,clickCount=1]
    

Merci à l'avance.

Était-ce utile?

La solution

Ainsi, l'événement qui provoque le menu contextuel fermer a disparu.

IIRC, exactement comment cela est mis en œuvre a changé de 1,5 à 1,6. En 1.5 il y a un GlassPane, dans 1,6 AWTEventListener s sont utilisés. Voir pour plus de détails sources BasicPopupMenuUI. Il semble que si vous pouvez (globalement) arrêter l'événement consommée avec:

UIManager.put("PopupMenu.consumeEventOnClose", false);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top