वहाँ StackOverflow जहां एक उपयोगकर्ता इस तरह एक प्रश्न पूछता पर कई बार किया गया है ...कार्डलेआउट बनाम जेपीएनल के मैन्युअल जोड़ने/हटाने के बारे में इतना खास क्या है?
मैं एक मुख्य
JPanel
कि एक बच्चेJPanel
शामिल है। जब उपयोगकर्ता बटन पर क्लिक करता है, तो बच्चेJPanel
कोJPanel
पर बदलना चाहिए। मैं इसे कैसे प्राप्त कर सकता हूं ।
अधिकतर नहीं, उपयोगकर्ता ने वास्तव में इस समस्या को लागू करने का प्रयास किया है, लेकिन यह काम नहीं कर सकता है।
जब भी मैं इस सवाल का जवाब है, मैं कुछ इस तरह (सीधे शब्दों में) करने के लिए उन्हें बता ...
JPanel myFrame = new JPanel();
myFrame.remove(oldPanel);
myFrame.add(newPanel);
मैं काफी एक वैध जवाब के रूप में देखते हैं, और मैं व्यक्तिगत रूप से के कई में इस का इस्तेमाल किया है समस्या के बिना मेरी अपनी जावा परियोजनाओं। हालांकि, मैं हमेशा अपने उत्तर के लिए डाउनवॉट प्राप्त करता हूं, और हर कोई बस कहता है "CardLayout
का उपयोग करें"।
तो मेरा सवाल यह है कि, CardLayout
के साथ सभी को इतनी मोहक क्यों है, जहां मेरा उत्तर डाउनवोट का हकदार है? मुझे ऊपर दिए गए कोड का उपयोग करके पैनल जोड़ने/हटाने के बजाय CardLayout
का उपयोग क्यों करना चाहिए?
एक और प्रश्न के रूप में, क्या आप अभी भी गतिशील जेपीनेल वाले इंटरफेस के लिए CardLayout
का सुझाव दे रहे हैं। उदाहरण के लिए, मेरे अधिकांश कार्यक्रम एक कस्टम प्लगइन ढांचे को लागू करते हैं जहां कई सैकड़ों JPanels
हो सकते हैं, लेकिन मैं केवल पैनलों को लोड और प्रदर्शित करता हूं क्योंकि वास्तव में आवश्यक हैं। कार्यक्रम के सामान्य उपयोग के लिए, अधिकांश पैनल वास्तव में कभी लोड या आवश्यक नहीं होंगे। इस प्रकार के परिदृश्य के लिए, क्या मेरा कोडिंग दृष्टिकोण सबसे अच्छा समाधान होगा, क्योंकि मुझे लगता है कि CardLayout
मुझे वास्तव में सभी JPanels
बनाने की आवश्यकता होगी, भले ही अधिकांश का कभी भी उपयोग नहीं किया जाएगा?
मुझे लगता है कि आपने रचनात्मक तरीके से अपने प्रश्न को phrasing करने के लिए एक अच्छी नौकरी की है। मुझे उम्मीद है कि यह बंद नहीं होगा। –
इसके लिए धन्यवाद - मैंने जानबूझकर इसे एक रचनात्मक प्रश्न बनाने की कोशिश की, और मुझे कुछ अच्छी प्रतिक्रिया प्राप्त करने में खुशी हुई। – wattostudios
* "लेकिन मैं केवल पैनलों को लोड और प्रदर्शित करता हूं क्योंकि उन्हें वास्तव में आवश्यक है।" * आलसी तात्कालिकता का उपयोग 'कार्डलाउट' के साथ भी किया जा सकता है, और यह पैनलों के 1000s का समर्थन करता है। –