जवाबों:
AWT आपके OS में मौजूद देशी सिस्टम GUI कोड के लिए एक जावा इंटरफेस है। यह हर सिस्टम पर समान काम नहीं करेगा, हालांकि यह कोशिश करता है।
स्विंग एक अधिक या कम-शुद्ध शुद्ध-जीयूआई है। यह एक ऑपरेटिंग सिस्टम विंडो बनाने के लिए AWT का उपयोग करता है और फिर उस विंडो में बटन, लेबल, टेक्स्ट, चेकबॉक्स इत्यादि के चित्रों को पेंट करता है, और आपके सभी माउस-क्लिक, कुंजी प्रविष्टियों इत्यादि का जवाब देता है, स्वयं निर्णय लेता है कि क्या करना है। ऑपरेटिंग सिस्टम को संभालने के बजाय इसे संभालें। इस प्रकार स्विंग 100% पोर्टेबल है और पूरे प्लेटफार्मों में एक ही है (हालांकि यह स्किनेबल है और इसमें "प्लगेबल लुक एंड फील" है जो इसे कम या ज्यादा बना सकता है जैसे कि देशी खिड़कियां और विगेट्स कैसे दिखेंगे)।
ये जीयूआई टूलकिट के लिए अलग-अलग दृष्टिकोण हैं और बहुत सारे परिणाम हैं। आपके प्रश्न का पूर्ण उत्तर उन सभी का पता लगाने की कोशिश करेगा। :) यहाँ एक जोड़े हैं:
AWT एक क्रॉस-प्लेटफ़ॉर्म इंटरफ़ेस है, इसलिए भले ही यह अपनी कार्यक्षमता के लिए अंतर्निहित OS या देशी GUI टूलकिट का उपयोग करता है, लेकिन यह उन सभी चीज़ों तक पहुँच प्रदान नहीं करता है जो उन टूलकिट्स कर सकते हैं। उन्नत या नए AWT विजेट्स जो एक प्लेटफॉर्म पर मौजूद हो सकते हैं, दूसरे पर समर्थित नहीं हो सकते हैं। हर प्लेटफ़ॉर्म पर समान नहीं होने वाली विगेट्स की विशेषताएँ समर्थित या बदतर नहीं हो सकती हैं, वे प्रत्येक प्लेटफ़ॉर्म पर अलग तरह से काम कर सकती हैं। लोग अपने एडब्ल्यूटी अनुप्रयोगों को प्लेटफार्मों भर में लगातार काम करने के लिए बहुत प्रयास करते थे - उदाहरण के लिए, वे जावा के मूल कोड में कॉल करने का प्रयास कर सकते हैं।
क्योंकि AWT देशी GUI विजेट्स का उपयोग करता है, आपका OS उनके बारे में जानता है और उन्हें एक-दूसरे के सामने रखने आदि को संभालता है, जबकि स्विंग विजेट आपके OS के दृष्टिकोण से एक विंडो के भीतर अर्थहीन पिक्सेल होते हैं। स्विंग ही आपके विजेट्स के लेआउट और स्टैकिंग को संभालता है। AWT और स्विंग को मिलाना अत्यधिक असमर्थित है और इससे हास्यास्पद परिणाम प्राप्त हो सकते हैं, जैसे कि देशी बटन जो संवाद बॉक्स में बाकी सब कुछ अस्पष्ट करते हैं जिसमें वे रहते हैं क्योंकि बाकी सब स्विंग के साथ बनाया गया था।
क्योंकि स्विंग एक मूल GUI विंडो द्वारा प्रदान किए गए बहुत कच्चे ग्राफिक्स रूटीन के अलावा जावा में हर संभव कोशिश करता है, यह AWT की तुलना में काफी अच्छा प्रदर्शन जुर्माना लगाता था। इसने स्विंग को दुर्भाग्य से धीमी गति से आगे बढ़ाया। हालाँकि, यह पिछले कई वर्षों में नाटकीय रूप से सिकुड़ा हुआ है क्योंकि अधिक अनुकूलित जेवीएम, तेज मशीनें, और (मैं अनुमान लगाता हूं) झूलते हुए इंटर्नल्स का अनुकूलन। आज एक स्विंग एप्लिकेशन इतनी तेजी से चल सकती है कि वह सेवा योग्य या यहां तक कि ज़िप्पी हो, और मूल विजेट से एक एप्लिकेशन से लगभग अप्रभेद्य हो। कुछ कहेंगे कि इस मुकाम तक पहुंचने में बहुत लंबा समय लगा, लेकिन ज्यादातर कहेंगे कि यह इसके लायक है।
अंत में, आप SWT (ग्रहण के लिए उपयोग किया जाने वाला GUI टूलकिट, और AWT और स्विंग दोनों के लिए एक विकल्प) की जांच करना चाह सकते हैं, जो जावा के माध्यम से मूल विजेट तक पहुँचने के AWT विचार के लिए कुछ हद तक एक वापसी है।
आधार अंतर जो पहले से ही सभी ने उल्लेख किया है कि एक भारी वजन है और दूसरा हल्का वजन है । मुझे समझाने की, मूल रूप से भारी वजन शब्द का क्या मतलब है कि जब आप awt घटकों का उपयोग कर रहे हैं तो देखने के घटक के लिए उपयोग किए जाने वाले मूल कोड को ऑपरेटिंग सिस्टम द्वारा उत्पन्न किया जाता है , यही कारण है कि यह ओएस से ओएस में बदलता है और महसूस करता है । जहां झूले घटकों के रूप में घटक के लिए दृश्य उत्पन्न करने के लिए JVM की जिम्मेदारी है । एक और बयान जो मैंने देखा कि स्विंग MVC आधारित है और awt नहीं है।
AWT बनाम स्विंग । मूल रूप से AWT पहले आया था और हैवीवेट UI घटकों का एक सेट है (जिसका अर्थ है कि वे ऑपरेटिंग सिस्टम ऑब्जेक्ट के लिए रैपर हैं) जबकि स्विंग AWT के शीर्ष पर हल्के घटकों के एक अमीर सेट के साथ बनाया गया है।
किसी भी गंभीर जावा यूआई का काम स्विंग नॉट एडब्ल्यूटी में किया जाता है, जिसका उपयोग मुख्य रूप से एप्लेट के लिए किया जाता था।
जब तक AWT स्विंग की तुलना में अधिक उपयोगी हो सकता है -
AWT और स्विंग के बीच इस अंतर के परिणाम कई हैं।
AWT OS के शीर्ष पर कोड की एक पतली परत है, जबकि स्विंग बहुत बड़ा है। स्विंग में बहुत अधिक समृद्ध कार्यक्षमता है। AWT का उपयोग करते हुए, आपको कई चीजों को स्वयं लागू करना होगा, जबकि स्विंग ने उन्हें बनाया है। GUI- गहन कार्य के लिए, AWT स्विंग की तुलना में काम करने के लिए बहुत आदिम महसूस करता है। क्योंकि स्विंग ओएस होस्ट पर भरोसा करने के बजाय जीयूआई कार्यक्षमता को लागू करता है, यह जावा पर चलने वाले सभी प्लेटफार्मों पर एक समृद्ध वातावरण प्रदान कर सकता है। AWT सभी प्लेटफार्मों पर समान कार्यक्षमता की आपूर्ति करने में अधिक सीमित है क्योंकि सभी प्लेटफ़ॉर्म एक ही-दिखने वाले नियंत्रणों को एक ही तरीके से लागू नहीं करते हैं।
स्विंग घटकों को "लाइटवेट" कहा जाता है क्योंकि उन्हें अपनी कार्यक्षमता को लागू करने के लिए एक देशी ओएस ऑब्जेक्ट की आवश्यकता नहीं होती है। JDialog
और JFrame
हेवीवेट हैं, क्योंकि उनके पास एक सहकर्मी है। इसलिए JButton
,
जैसे घटक JTextArea
, आदि हल्के होते हैं क्योंकि उनके पास ओएस पीयर नहीं होता है।
एक सहकर्मी ऑपरेटिंग सिस्टम द्वारा प्रदान किया जाने वाला एक विजेट है, जैसे कि बटन ऑब्जेक्ट या एंट्री फ़ील्ड ऑब्जेक्ट।
आवा १। AWT अधिक मेमोरी स्पेस 2 पर कब्जा कर लेता है। AWT प्लेटफॉर्म आश्रित 3 है। AWT को javax.awt पैकेज की आवश्यकता होती है
झूला 1। स्विंग कम स्मृति स्थान 2 पर है। स्विंग घटक प्लेटफ़ॉर्म 3 स्वतंत्र है। स्विंग के लिए javax.swing पैकेज की आवश्यकता होती है