विंडो एक्टिवेटेड (विंडो लिस्टनर से कार्यान्वित) और विंडोगाइनडफोकस (विंडोफोकस लिस्टनर से कार्यान्वित) विधि के बीच मुख्य अंतर क्या है?

जावा दस्तावेज कहता है:

विंडो प्राप्त फोकस:

जब विंडो को फ़ोकस विंडो के रूप में सेट किया जाता है, जिसका अर्थ है कि विंडो, या उसके उप-घटकों में से एक, कीबोर्ड ईवेंट प्राप्त करेगा।

विंडो सक्रिय:

जब विंडो को सक्रिय विंडो के रूप में सेट किया जाता है, तो इसे आमंत्रित किया जाता है। केवल एक फ़्रेम या डायलॉग ही सक्रिय विंडो हो सकता है। नेटिव विंडोिंग सिस्टम सक्रिय विंडो या उसके बच्चों को विशेष सजावट के साथ निरूपित कर सकता है, जैसे कि हाइलाइटेड टाइटल बार। सक्रिय विंडो हमेशा या तो फ़ोकस की गई विंडो होती है, या पहला फ़्रेम या डायलॉग जो फ़ोकस की गई विंडो का स्वामी होता है।

लेकिन क्या फर्क है? या यह वैसा ही है जैसा यह कहता है, कि एक केंद्रित विंडो एक प्रकार की सक्रिय विंडो है?

अग्रिम में धन्यवाद!

1
Casimir Rönnlöf 18 पद 2018, 21:27

2 जवाब

सबसे बढ़िया उत्तर

विंडो श्रोता कैसे लिखें से जो आपके उद्धरण को दर्शाता है प्रश्न भी:

windowActivated(WindowEvent) और windowDeactivated(WindowEvent):

सुने-टू-विंडो के क्रमशः सक्रिय या निष्क्रिय होने के तुरंत बाद कॉल किया जाता है। ये विधियां उन विंडो को नहीं भेजी जाती हैं जो फ़्रेम या संवाद नहीं हैं। इस कारण से, windowGainedFocus और windowLostFocus विधियों को यह निर्धारित करने के लिए प्राथमिकता दी जाती है कि विंडो कब लाभ प्राप्त करती है या फोकस खो देती है।


इसलिए windowActivated को केवल निष्पादित किया जाता है जब विंडो एक फ्रेम या डायलॉग है, जबकि windowGainedFocus सभी प्रकार के लिए है।

2
Mark 18 पद 2018, 21:44

फोकस्ड विंडो वह है जो कीबोर्ड इनपुट प्राप्त करती है। एक सक्रिय विंडो आमतौर पर दस्तावेज़ विंडो होती है जिसे उपयोगकर्ता जोड़-तोड़ कर रहा होता है। एक सक्रिय विंडो को आम तौर पर नेत्रहीन रूप से पहचाना जाता है, उदाहरण के लिए, एक अलग शीर्षक पट्टी के साथ।

MacOS में, फ़ोकस की गई विंडो को की विंडो कहा जाता है और सक्रिय विंडो (केवल एक ही हो सकती है) को मुख्य विंडो कहा जाता है।

भेद सूक्ष्म है क्योंकि वे लगभग हमेशा एक ही खिड़की होते हैं।

एक उदाहरण जहां वे भिन्न होते हैं एक फ़्लोटिंग पैलेट होगा जिसमें टेक्स्ट फ़ील्ड होता है। कीबोर्ड इनपुट को स्वीकार करने के लिए पैलेट को फ़ोकस विंडो होना चाहिए, लेकिन दस्तावेज़ विंडो सक्रिय विंडो है जहां वास्तव में परिवर्तन किए जाते हैं और इसे अन्य (निष्क्रिय) दस्तावेज़ विंडो से अलग किया जाना चाहिए।

हालांकि जावा अपने एपीआई में सक्रिय और केंद्रित विंडो को अलग करता है, कार्यान्वयन उन्हें एक साथ जोड़ता है ताकि कुछ संयोजन (जैसे उपरोक्त उदाहरण) संभव नहीं हैं, या कम से कम व्यवस्थित करना मुश्किल है। उदाहरण के लिए, यदि आप फोकस करने योग्य जावा विंडो पर क्लिक करते हैं, तो यह फोकस्ड विंडो और सक्रिय विंडो दोनों बन जाती है।

0
Alan Snyder 7 जुलाई 2019, 07:37