मेरे पास एक जेएफआरएएम है जिसमें बाल घटकों को बदलने की बड़ी संख्या है। (कई परतें) क्या सभी माउस घटनाओं के लिए श्रोता जोड़ने का कोई तरीका है? KeyEventDispatcher की तरह कुछ?मैं जेएफआरएएम/स्विंग में सभी माउस ईवेंट कैप्चर कैसे कर सकता हूं?
उत्तर
एक AWTEventListener MouseEvents को फिल्टर करने का उपयोग करें:
long eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK;
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener()
{
public void eventDispatched(AWTEvent e)
{
System.out.println(e);
}
}, eventMask);
यह हस्ताक्षरित एप्लेट्स में अनुमति नहीं है – lexicalscope
एक कक्षा में सभी माउस से संबंधित श्रोताओं को लागू करें, और उस वर्ग रजिस्टर सभी माउस से संबंधित घटनाओं के लिए हैंडलर के रूप में
माउस संबंधित इंटरफेस
MouseListener MouseMotionListener MouseWheelListener
यह काम नहीं करता है क्योंकि पदानुक्रम में केवल एक ही घटक माउस ईवेंट प्रकाशित करने जा रहा है। इसलिए इसे पदानुक्रम में प्रत्येक घटक पर माउस श्रोता (ओं) को पंजीकृत करने की आवश्यकता होगी। –
आपके पास होगा जेएफआरएएम का ग्लासपेन का उपयोग करने के लिए: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JFrame.html#getGlassPane()
बस ग्लास फलक प्राप्त करें frm.getGlassPane() के साथ एक JFrame का और विंडो के अंदर सभी माउस ईवेंट को कैप्चर करने के लिए addMouseListener() का उपयोग करें।
आप MouseAdapter
का उप-वर्ग लागू करना चाहते हैं, एक सार वर्ग जो Mouse*Listener
इंटरफ़ेस में परिभाषित सभी विधियों के खाली कार्यान्वयन प्रदान करता है। एक बार ऐसा करने के बाद, आप इसे बनाए जाने पर MouseListener
के रूप में अपने बच्चे के घटकों के साथ पंजीकृत कर सकते हैं। जैसा कि आप इंगित करते हैं कि आपके घटक 'बदल रहे हैं', आप यह सुनिश्चित करना चाहते हैं कि आप अपने श्रोता को अनधिकृत भी करें यदि आप अपने जेएफआरएएम के जीवन चक्र के दौरान अपने घटकों को रिलीज़ करने की उम्मीद करते हैं।
आप अपने पूरे JFrame पर एक GlassPane जोड़ सकता है, यह करने के लिए एक MouseInputAdapter जोड़ने के लिए सभी संभव माउस की घटनाओं को आकर्षित करने, और उसके बाद का उपयोग [SwingUtilities.getDeepestComponentAt()] [3] वास्तविक घटक पाने के लिए और [SwingUtilities.convertMouseEvent ()] [4] ग्लास फलक से वास्तविक घटक तक माउस इवेंट का प्रतिनिधित्व करने के लिए।
हालांकि, मुझे इसके प्रदर्शन के प्रभाव के बारे में निश्चित नहीं है - KeyEventDispatcher के विपरीत, जिसे किसी भी कुंजी दबाए जाने पर केवल एक ईवेंट को आग लगाना पड़ता है, उपयोगकर्ता कई माउस उत्पन्न करता है क्योंकि उपयोगकर्ता माउस को ले जाता है - और KeyEventDispatcher के विपरीत, आप ईवेंट को इसे संभालने के लिए निम्न घटक को फिर से भेजने की आवश्यकता है।
(खेद है - stackoverflow SwingUtilities तरीकों के लिंक सही ढंग से निपटने के नहीं है ... लिंक बल्कि पाठ की तुलना में नीचे दिखा रहे हैं।)
[3]: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/SwingUtilities.html#getDeepestComponentAt(java.awt.Component, int, int) [4 ]: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/SwingUtilities.html#convertMouseEvent(java.awt.Component, java.awt.event.MouseEvent, java.awt.Component)
- 1. मैं WPF में माउस व्हील क्लिक ईवेंट को कैसे प्रबंधित कर सकता हूं?
- 2. मैं सभी सेटटाइमआउट ईवेंट को कैसे अक्षम कर सकता हूं?
- 3. मैं ब्राउज़र में वीडियो कैप्चर कैसे कर सकता हूं?
- 4. मैं कोड से माउस इवेंट कैसे अनुकरण कर सकता हूं?
- 5. मैं जावास्क्रिप्ट में राइट-क्लिक ईवेंट कैप्चर कैसे कर सकता हूं?
- 6. मैं jQuery में COMMAND + S कैप्चर कैसे कर सकता हूं?
- 7. मैं सी # में ईवेंट सदस्यता कैसे साफ़ कर सकता हूं?
- 8. मैं प्रति पीआईडी नेटवर्क पैकेट कैप्चर कैसे कर सकता हूं?
- 9. मैं व्यू ग्रुप के सभी बच्चों पर सभी स्पर्श ईवेंट कैसे अक्षम कर सकता हूं?
- 10. मैं बाहरी कमांड कैसे चला सकता हूं और पर्ल में अपना आउटपुट कैप्चर कर सकता हूं?
- 11. मैं विशिष्ट निर्देशांक के साथ WPF/C# में माउस ईवेंट कैसे बढ़ा सकता हूं?
- 12. System.exit ईवेंट कैप्चर कैसे करें?
- 13. मैं एक्सएमएल में सभी नेमस्पेस कैसे सूचीबद्ध कर सकता हूं?
- 14. मैं रेडिस में सभी सेट कैसे प्राप्त कर सकता हूं?
- 15. स्क्रॉल ईवेंट कैप्चर कैसे करें?
- 16. कैप्चर ईवेंट ऑनक्लोस ब्राउज़र
- 17. मैं सॉकेट.ओओ में बंद ईवेंट कैसे संभाल सकता हूं?
- 18. मैं जावा में एकाधिक माउस इनपुट कैसे संभाल सकता हूं?
- 19. मैं पृष्ठ स्क्रॉलिंग ट्रिगर माउसओवर ईवेंट कैसे बना सकता हूं?
- 20. पायथन: मैं सभी चर कैसे आयात कर सकता हूं?
- 21. मैं सभी सीएसएस शॉर्टैंड्स को कैसे याद कर सकता हूं?
- 22. मैं अलग-अलग चर में पर्ल नियमित अभिव्यक्ति से कैप्चर कैसे स्टोर कर सकता हूं?
- 23. मैं सभी इंटरनेट अनुरोधों की निगरानी कैसे कर सकता हूं?
- 24. क्या मैं ओएसएक्स में कीबोर्ड और माउस इवेंट कैप्चर करने के लिए पाइथन का उपयोग कर सकता हूं?
- 25. पैनल पर माउस व्हील कैप्चर कैसे करें?
- 26. क्या मैं DataGridView.EndEdit सेलविलिडेटिंग ईवेंट को ट्रिगर कर सकता हूं?
- 27. पारदर्शी पृष्ठभूमि पर माउस ईवेंट
- 28. मैं पाइथन में टर्मिनल आउटपुट कैसे प्राप्त कर सकता हूं?
- 29. मैं सभी लाइनब्रेक कैसे हटा सकता हूं?
- 30. माउस चाल ईवेंट को/dev/input/event *
इस समुदाय विकी क्यों है? – akf