2009-05-15 5 views
1

MouseEvent이 해고되는 측면에서 예상되는 동작이 다음 중 무엇인지 알고 있습니까? 하나는 빠져 있거나 다른 곳에서 소비 된 것 같습니다. JPopupMenuJava MouseListener - 이벤트

  • 여전히 보여주는 버튼 3에서와 올바른 순서로

    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] 
    

    지금까지 너무 좋아 3 어딘가에 왼쪽 클릭 :

    1. JPanel 표시 JPopupMenu을 마우스 오른쪽 버튼으로 클릭 JPanelJPopupMenu :

      MousePressed 이벤트는 어떻게 되었나요? 사전에

      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] 
      

    감사합니다.

  • 답변

    2

    그래서 팝업 메뉴를 닫는 이벤트가 사라졌습니다.

    IIRC 정확히 구현 된 방법은 1.5에서 1.6으로 변경되었습니다. 1.5에서는 1.에 유리판이 사용됩니다. 자세한 내용은 BasicPopupMenuUI 소스를 참조하십시오. 다음과 같이 소비되는 이벤트를 (전체적으로) 멈출 수있는 것처럼 보입니다.

    UIManager.put("PopupMenu.consumeEventOnClose", false); 
    
    +1

    이벤트가 중지되지 않도록 하시겠습니까? –