Domanda

Lo qualsiasi sapere se quanto segue è il comportamenti attesi in termini di ciò che MouseEvent s sono licenziati? Uno sembra mancare o consumate altrove.

  1. Fai clic destro su JPanel e la visualizzazione 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]
    

    Fin qui tutto bene tutti e 3 dal pulsante 3 e in modo corretto

  2. Con MousePressed mostrando ancora sinistro del mouse da qualche parte nel <=> non nel <=>:

    Quello che è successo alla manifestazione <=>?

    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]
    

Grazie in anticipo.

È stato utile?

Soluzione

Quindi, l'evento che fa sì che il menu a comparsa per chiudere è scomparso.

IIRC, esattamente come questo è implementato cambiato 1,5-1,6. In 1.5 c'è un glasspane, sono utilizzati in 1,6 AWTEventListener s. Vedere BasicPopupMenuUI fonti per i dettagli. Sembra come se è possibile (a livello mondiale) di fermare la manifestazione essere consumati con:

UIManager.put("PopupMenu.consumeEventOnClose", false);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top