1

MouseEventが起動されるかに関して、次のことが予想される動作であるかどうかを知っていますか?1つは、他の場所で欠落しているか、消費されているようです。

  1. 右クリックし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]
    

    これまでのところ、ボタン3から3つすべてが正しい順序で良好です

  2. まだ表示されている状態で、: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]
    

前もって感謝します。

4

1 に答える 1

2

これで、ポップアップ メニューを閉じるイベントがなくなりました。

IIRC、これが正確にどのように実装されるかが 1.5 から 1.6 に変更されました。1.5 ではガラス板があり、1.6 ではAWTEventListeners が使用されます。詳細についてBasicPopupMenuUIは、ソースを参照してください。イベントの消費を(グローバルに)停止できるように見えます:

UIManager.put("PopupMenu.consumeEventOnClose", false);
于 2009-05-15T17:43:36.027 に答える