Pregunta

¿Alguno sabe si el siguiente es el comportamiento esperado en términos de lo MouseEvents son despedidos?Parece ser que faltan o que se consume en otros lugares.

  1. Haga clic derecho en JPanel y la pantalla 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]
    

    Tan lejos y tan bien todos los 3 de botón 3 y en el orden correcto

  2. Con JPopupMenu sigue mostrando izquierda haga clic en algún lugar en el JPanel no en el JPopupMenu:

    Lo que sucedió a la MousePressed el evento?

    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]
    

Gracias de Antemano.

¿Fue útil?

Solución

Así que el evento que causa el menú emergente para cerrar ha desaparecido.

IIRC, exactamente cómo se implementa esto cambió de 1,5 a 1,6. En 1,5 hay un GlassPane, en se utilizan 1,6 AWTEventListener s. Ver BasicPopupMenuUI fuentes de datos. Parece como si se puede (a nivel mundial) detener el evento que se consume con:

UIManager.put("PopupMenu.consumeEventOnClose", false);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top