2013-02-24 16 views
8

स्वयं, मैं हमेशा स्विंग इवेंट-हैंडलर (जैसे बटन-क्लिक) के रूप में ActionListener का उपयोग करता हूं, और यह सबसे सामान्य श्रोता है जो मैंने अधिकांश स्विंग अनुप्रयोगों में देखा है।उपयोग करने के लिए बेहतर क्या है: एक्शन बनाम एक्शनलिस्टर?

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

+1

क्रिया साझा करने योग्य, ब्लॉक करने योग्य, सेटटेबल द्वारा कर सकते हैं। 'एक्शन' के लिए – mKorbel

उत्तर

10

एक Action को प्राथमिकता दी जाती है यदि आपको घटकों में कार्यक्षमता साझा करने की आवश्यकता है। docs

यदि आपके पास एक ही कार्य करने वाले दो या दो से अधिक घटक हैं, तो फ़ंक्शन को लागू करने के लिए एक क्रिया ऑब्जेक्ट का उपयोग करने पर विचार करें।

लेकिन यह भी कहते हैं

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

+1

+1; ['FileMenu'] (http://stackoverflow.com/a/4039359/230513) एक मूल उदाहरण है। ऐसा करने का लाभ बाद में ऐसा नहीं करना है। :-) – trashgod

+1

एक एकल एक्शन श्रोता बनाने के बारे में क्या, और 'addActionListener()' के माध्यम से एकाधिक स्विंग घटकों के लिए एक ही संदर्भ जोड़ें? क्या यह वही बात नहीं है? –

+4

@ Eng.Fouad: क्रियाओं में एक्शनलिस्टेनर्स के साथ अन्य अतिरिक्त उपहार नहीं मिलते हैं जिनमें आइकन, निमोनिक कुंजी, विवरण, और किसी भी वैल्यू-कुंजी को पकड़ने की क्षमता शामिल है। –

संबंधित मुद्दे