سؤال

لديّ jpanel ، والتي أود اكتشاف الأحداث التالية

(1) عندما ينتقل الماوس

(2) عندما ينتقل الماوس

(1) سهل سريع. (2) صعب بعض الشيء. حاليا ، يجب أن أسجل الحدث في جميع المكونات حول JPanel. إذا اكتشف الجار المحيط Jpanel خطوة ماوس في الحدث ، فهذا يعني أيضًا أن JPanel لديه موقف (2). ومع ذلك ، فهذا أمر قذر إلى حد ما ، حيث أضيف في مكونات جديدة في المستقبل ، وسوف ينهار هذا الحل القذر.

طريقة أخرى هي أن يكون لديك مؤقت لمراقبة jpanel. إذا لم يكن موضع الماوس داخل JPanel في غضون X Seconds ، يمكنني أن أفكر في أن JPANEL يحصل على حدث انتقال الماوس.

ومع ذلك ، يبدو هذا الطريق القذر بالنسبة لي أيضًا ، حيث أن وجود مؤقت منفصل لأداء هذه المهمة المشتركة هو مبالغة.

هل هناك طريقة أفضل ، ما هي منصة Java التي قد توفرها؟

هل كانت مفيدة؟

المحلول

اطلب من الفصل الخاص بك تطبيق mouselistener وأضفه كمستمع للماوس على اللوحة الخارجية. يجب أن تحصل على حدث معود للماوس عندما يتحرك الماوس فوق اللوحة ، ويستغرقه الماوس عندما يغادر ؛ بغض النظر عن أي مكونات تحتوي عليها اللوحة.

من جافادوك:

تم استدعاء الفئران الفراغ (mouseevent e) عندما يدخل الماوس مكونًا.

void mouseexited (mouseevent e) استدعى عندما يخرج الماوس مكونًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top