جافا MouseListener - الأحداث
-
22-08-2019 - |
سؤال
هل يعرف أحد ما إذا كان ما يلي هو السلوكيات المتوقعة من حيث ماذا MouseEvent
يتم طردهم؟يبدو أن أحدهم مفقود أو مستهلك في مكان آخر.
انقر بزر الماوس الأيمن على
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 جيدة جدًا وبالترتيب الصحيح
مع
JPopupMenu
لا يزال يظهر النقر بزر الماوس الأيسر في مكان ما فيJPanel
ليس فيJPopupMenu
:ماذا حدث ل
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]
شكرا لك مقدما.
المحلول
لذلك اختفى الحدث الذي تسبب في إغلاق القائمة المنبثقة.
IIRC، تغيرت كيفية تنفيذ ذلك بالضبط من 1.5 إلى 1.6.في 1.5 يوجد زجاج، في 1.6 AWTEventListener
يتم استخدام.يرى BasicPopupMenuUI
مصادر للحصول على التفاصيل.يبدو كما لو أنه بإمكانك (عالميًا) إيقاف استهلاك الحدث من خلال:
UIManager.put("PopupMenu.consumeEventOnClose", false);
لا تنتمي إلى StackOverflow