How to tell which JList among two has cursor focus in Java Swing? -


स्निपेट

हाय, मैं जावा स्विंग का उपयोग कर एक साधारण टैगिंग टूल का निर्माण कर रहा हूं घटक में दो JLists हैं, और जब भी मैं टैगिंग बटन पर क्लिक करता हूं, मैं दिए गए पाठ में एक टैग जोड़ना चाहता हूं। यदि मेरा कर्सर फ़ोकस बाएं JList पर है, तो मैं बाएं JList पर टेक्स्ट को संशोधित करना चाहता हूं, और यदि यह दाईं ओर है, तो सही को संशोधित करें कर्सर फ़ोकस से मेरा क्या मतलब है वह जगह है जहां मैं कुंजीपटल तीर का उपयोग करके सूची आइटम को नेविगेट कर सकता हूं।

तो बटन श्रोता को बता देना चाहिए कि वर्तमान कर्सर फोकस बाएं जेल्स्ट पर है या सही है मुझे यह कैसे करना चाहिए? मैंने पहले से ही "GetFocusOwner" का उपयोग करने की कोशिश की है, लेकिन यह बटन मैंने अभी क्लिक किया है।

सबसे खूबसूरत तरीका नहीं है, तो आप अपने कोड को FocusListener जोड़ सकते हैं Jlist s

  सार्वजनिक वर्ग CheckFocus JFrame {JList & lt; स्ट्रिंग & gt; ध्यान केंद्रित = नल; JList & LT; स्ट्रिंग & gt; List1 = नया जेलिस्ट & lt; & gt; (नया स्ट्रिंग [] {"ए", "बी"}); JList & LT; स्ट्रिंग & gt; List2 = नया जेलिस्ट & lt; & gt; (नया स्ट्रिंग [] {"1", "2"}); चेकफोकस () {जेबटन बीटीएन = नया जेबटन ("फोकस कौन है?"); Btn.addActionListener (नई एक्शनलिस्टनर) (सार्वजनिक शून्य क्रिया क्रियान्वित (ActionEvent ई) {यदि (फोकस किए गए सूची .equals (list1)) System.out.println ("list1"); और अगर (केंद्रित लैन .equals (list2)) System.out .println ("list2"); अन्य System.out.println ("none");}}); MyFocusListener एमएफएल = नया MyFocusListener (); list1.addFocusListener (एमएफएल); list2.addFocusListener (एमएफएल); GetContentPane ()। जोड़ें (सूची 1, बॉर्डर लेआउट। LINE_START); GetContentPane ()। जोड़ें (list2, BorderLayout.LINE_END); GetContentPane ()। जोड़ें (बीटीएन, बॉर्डर लेआउट। सीए); setDefaultCloseOperation (EXIT_ON_CLOSE); पैक (); setVisible (सही); } सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {नया चेकफोकस (); } वर्ग MyFocusListener फोकस एडाप्टर का विस्तार करता है {@ ओवरराइड सार्वजनिक शून्य ध्यान केंद्रित (फोकसइवेंट ई) {super.focusGained (e); केंद्रित सूची = (जेलिस्ट & lt; स्ट्रिंग & gt;) e.getSource (); }}}   

यदि आप प्रत्येक सूची पर एक सेल का चयन करते हैं और फिर एक बटन दबाते हैं, तो जेवीवी सूची को उसी प्रकार से व्यवहार करता है - इस समय दोनों पर ध्यान नहीं दिया जाता है । आप क्या चाहते हैं यह जानना है कि किसने ध्यान दिया था बस से पहले आपने बटन दबाया था, लेकिन जेवीएम इस तरह की जानकारी को संग्रहीत नहीं करता है ताकि आपको इसे खुद को स्टोर करना पड़े। < / html>

Comments

Popular posts from this blog

sonata admin - how to add ManyToOne property field in configureListfield in sonataAdmin -

sql - Return Function using Cursor -

sql server - How to use pivot in this table -