दिलचस्प पोस्ट
कैसे काम करता है? एक (संभवतया) साहचर्य सरणी में पहली कुंजी प्राप्त करें? मैं "नेटवर्क" समय कैसे प्राप्त कर सकता हूं, ("स्वचालित" सेटिंग से "नेटवर्क-प्रदान किए गए मानों का उपयोग करें" कहलाता है), फोन पर समय नहीं है? हेक्स NSString को NSData में परिवर्तित करना क्या फाइल में लाइनों को संशोधित करना संभव है? तर्क प्रकार के आधार पर __init__ पद्धति को अधिभार कैसे करें? Numpy arrays और matrices के बीच अंतर क्या हैं? मुझे किसका उपयोग करना चाहिए? मैं कोड :: ब्लॉकों के साथ एक पुस्तकालय से कैसे लिंक करूं? Android में स्थिर चर का उपयोग करना Xcode बिल्ड विफलता "आर्किटेक्चर के लिए अनिर्धारित प्रतीकों x86_64" जावा के साथ JSONArray में आइटम के सदस्यों तक पहुंच विधानसभा विधानसभा, विधानसभा के बीच अंतर क्या है विधानसभा और विधानसभाविवरण संस्करण? क्यों कहते हैं कि HTTP एक स्टेटलेस प्रोटोकॉल है? क्यों नहीं जावा संग्रह सामान्य तरीके निकालें? 2 डी सरणी में पीक खोज

स्विंग में एक अशक्त लेआउट का उपयोग करने के लिए इसे क्यों सता रहा है?

हाल ही में, मैंने जिस कंपनी के लिए काम किया है उसके लिए मैंने एक प्रोग्राम बनाना शुरू कर दिया था। पृष्ठभूमि की जानकारी के रूप में, मैं अभी भी एक छात्र और शुरुआती प्रोग्रामर हूं, इसलिए मेरा समाधान संभवतः अनुशंसित नहीं है और मुझे नहीं पता कि यह कैसे करना है अन्यथा, लेकिन यह काम करता है और मैं इसके लिए न्याय नहीं होने जा रहा हूँ यह प्रोग्रामिंग की पूरी तरह से असंबंधित एक छात्र नौकरी है।

कार्यक्रम के बारे में यह बात है, यह अलग-अलग स्क्रीन आकारों और संकल्पों (800×600 और ऊपर) के साथ कई अलग-अलग कंप्यूटर पर चलने वाला है। यह सुनिश्चित करने के लिए कि कार्यक्रम के किसी भी भाग को खोए बिना संभवतया अधिक स्क्रीन लेता है, मैंने रिलेटिव मानों का उपयोग करते हुए निरर्थक और हार्ड-कोडित सब कुछ करने के लिए लेआउट सेट किया है।

कार्यक्रम किओस्क-शैली है और मुझे पहले स्क्रीन आकार के मूल्य मिलते हैं और वहां से जाते हैं (उदाहरण के लिए, मेरे सिर के ऊपर से, बाईं ओर के मेनू में स्क्रीन का एक आठवां हिस्सा होता है, शीर्ष बार 2%, आदि) । मैं यह सुनिश्चित करने के लिए भी फ़ॉन्ट मैट्रिक्स का उपयोग करता हूं कि घटकों को सही ढंग से आकार दिया गया है और यह कि सब कुछ अच्छी तरह से प्रदर्शित हो जाता है

मेरा सवाल है: लेआउट मैनेजर्स का उपयोग करने के बजाए लेआउट नल बनाने के लिए इसे इतनी सीधा क्यों किया जाता है? (मुझे कुछ मंचों से कहा गया था कि यह काम करने का एक भयानक तरीका है) मुझे पता है कि लेआउट प्रबंधक कैसे काम करता है और पता चलता है कि कैसे विभिन्न लेआउट का उपयोग किया जाए, लेकिन इस कार्यक्रम की आवश्यकताओं के लिए (कई अलग-अलग प्रस्तावों, कस्टम बटन आकृतियों और प्लेसमेंट , जब आप भाषा बदलते हैं तो घटकों पर पाठ बदलते हैं, आदि), मैं लेआउट प्रबंधकों का उपयोग करके यह सब कुछ करने के लिए स्वयं नहीं देख सकता था।

आप इस तरह की स्थिति में अधिक अनुभवी प्रोग्रामर लेआउट प्रबंधकों का उपयोग कैसे करते हैं? और आप क्या करते हैं जब आप किसी बटन को कहीं और विशिष्ट और अन्य घटकों को कहीं और विशिष्ट करना चाहते हैं जो वास्तव में किसी भी पूर्वनिर्धारित लेआउट से मेल नहीं खाता है?

वेब के समाधान से एकत्रित समाधान "स्विंग में एक अशक्त लेआउट का उपयोग करने के लिए इसे क्यों सता रहा है?"

यदि आप लेआउट मैनेजर को सही तरीके से लेते हैं तो स्क्रीन आपके लिए अलग-अलग आकारों में पुन: प्रवाह करेगी, यह विचार सभी स्क्रीन आकारों पर लेआउट मैनेजर्स के एक समूह का उपयोग करना है।

यदि आप अशक्त का उपयोग करते हैं तो आपको प्रत्येक स्क्रीन आकार को स्वयं करना होगा इतना ही नहीं, लेकिन अगर ऐप को विंडो में रखा जा सकता है, तो आपको हर संभव आकार का समर्थन करना होगा, जिससे वे स्क्रॉल कर सकते हैं।

ऐसा करने के लिए मुश्किल है, लेकिन लेआउट मैनेजरों को ऐसा करने के लिए डिज़ाइन किया गया है।

कुछ सामान्य ट्रिक हैं बॉर्डर लेआउट के साथ शुरू करने के लिए एक शानदार लेआउट है। कभी-कभी आप इसका उपयोग कई स्तरों पर कर सकते हैं – अक्सर इसमें सिर्फ 2 या 3 घटकों के साथ। ऐसा इसलिए है क्योंकि यह वास्तव में एक क्षेत्र को न्यूनतम देने के लिए बहुत अच्छा है और केंद्र को सब कुछ दे रहा है।

फ्लो लेआउट उपयोगी हो सकता है, लेकिन यह मुश्किल है अगर आपके घटक अलग-अलग आकार हैं।

मैं ग्रिडबागलेआउट की कोशिश नहीं करता जब तक कि आप अपने लेआउट मैनेजर (उस पर एक उत्कृष्ट समाधान) फ़ीड करने के लिए कोड लिखने की योजना बना रहे हों।

मैं भी जीयूआई बिल्डर्स का उपयोग नहीं करेगा, वे अपने लेआउट को रिफ्लू करना चाहते समग्र तरीके से नहीं जानते हैं।

संक्षेप में: क्योंकि लेआउट मैनेजर द्वारा ऊपर दिए गए सभी कामों को पूरा किया गया है (या कम से कम: किया जाना चाहिए)

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

ऐसा लगता है कि आपके द्वारा किए गए कार्य वास्तव में लेआउट प्रबंधक द्वारा किया जाना चाहिए। या तो जो कोई ऐसा करता है (मेरा निजी सुझाव मिगलायआउट होगा, जो बहुत कुछ करता है और उपयोग करना आसान होता है) या अपना खुद का लेखन करें

आप व्यावहारिक रूप से एक लेआउट का उपयोग कर रहे हैं – अपने खुद के, पदों के अपने सभी परिष्कृत गणना के साथ

आलोचकों को शांत करने के लिए आप इन तर्कों को कस्टम लेआउट प्रबंधक वर्ग में ले जा सकते हैं

हम्म चालें लेआउट मैनेजरों के मिश्रण से और नेस्टेड जेपीएनल्स की संख्याओं के उपयोग से होनी चाहिए कि प्रत्येक में अलग-अलग लेआउट हो सकते हैं या नहीं, वास्तव में JComponents की संख्या पर निर्भर करता है, जो आपको जीयूआई बनाने की अनुमति देता है जो कि अब्सोल्यूट लेआउट का उपयोग करके लगाया जाता है, लेकिन एक ही रूप में / प्रत्येक स्क्रीन प्रस्तावों और अनुपात के लिए जीयूआई में आउटपुट (4: 3, 16: 9, 16:10)