Frage

Hat jeder wissen, ob die folgenden werden die erwarteten Verhaltensweisen in Bezug auf was MouseEvents abgefeuert werden? Man scheint an anderer Stelle fehlen oder verbraucht zu werden.

  1. Rechtsklick auf JPanel und Anzeige 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]
    

    So weit so gut all 3 von Taste 3 und in der richtigen Reihenfolge

  2. Mit JPopupMenu noch zeigen Linksklick irgendwo in der JPanel nicht in der JPopupMenu:

    Was geschah mit dem MousePressed Ereignisse?

    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]
    

Vielen Dank im Voraus.

War es hilfreich?

Lösung

So das Ereignis, das das Popup-Menü führt zu schließen, ist verschwunden.

IIRC, genau wie dies umgesetzt wird geändert 1,5-1,6. In 1.5 gibt es eine Glasspane, in 1,6 AWTEventListeners verwendet werden. Siehe BasicPopupMenuUI Quellen für weitere Einzelheiten. Es sieht aus, als ob Sie können (global) das Ereignis beenden wird verbraucht mit:

UIManager.put("PopupMenu.consumeEventOnClose", false);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top