हाय सब मेरे पास एक जेएफआरएएम है जिसमें तीन घटक हैं।जावा स्विंग: मैं ग्रिड लेआउट में एक पंक्ति का आकार कैसे बदल सकता हूं और इसे गतिशील रूप से केवल क्षैतिज रूप से आकार देने की अनुमति देता हूं और लंबवत नहीं?
- एक मेनू
- एक टैब वाले फलक
- एक पैनल कुछ बटन
शुरू में मेरा लक्ष्य निम्नलिखित की तरह एक डिजाइन बनाने के लिए है:
जब उपयोगकर्ता आवेदन का आकार बदल जाएगा, सब कुछ भी आकार बदल जाएगा। तो मुझे लगा कि अगर मैं एक साधारण ग्रिड लेआउट मेरी समस्या हल किया जाएगा इस्तेमाल किया, तो मैं निम्न कार्य करने का निर्णय लिया:
टैब वाले फलक के अंदर कुछ पैनल होगा और उन पैनलों ग्रिड लेआउट का पालन करेंगे।
नीचे पैनल नीचे ग्रिड लेआउट का पालन करेगा।
जेएफआरएम ग्रिड लेआउट का भी पालन करेगा।
परिणाम:
आप देख सकते हैं यह नहीं है कि मैं क्या चाहता था, बटन बहुत बड़े हैं और हालांकि आवेदन बहुत अच्छी तरह से आकार बदलता है:
बटन भी आकार बदलते हैं लेकिन वे बहुत बड़े रहते हैं। मैं बटन के लिए एक छोटा सा आकार सेट करने में सक्षम होना चाहता हूं (अधिक विशेष रूप से पैनल जिसमें वे शामिल हैं) और जब उपयोगकर्ता एप्लिकेशन का आकार बदलता है, तो बटन केवल क्षैतिज रूप से लंबवत आकार का आकार नहीं लेते हैं जिसका अर्थ है कि केवल टैबड फलक बड़ा हो जाएगा खड़ी। क्या यह प्राप्त करने योग्य है? मैंने ग्रिडबैगआउट के बारे में खोज की और पता चला, मैंने थोड़ा सा खेलना शुरू किया, लेकिन मुझे कुछ हासिल नहीं हुआ। सभी मुझे क्या करने में कामयाब निम्नलिखित है:
अच्छा लगता है, लेकिन जब मैं आकार बदलने के इस मैं क्या मिलता है: पहले से
धन्यवाद।
+1 मुझे लगता है कि यह भी काम करेगा। फिर निचले पैनल के लिए 'setPreferredSize' सेट करें। इससे इसकी ऊंचाई स्थिर हो जाएगी। केंद्र पैनल के लिए आकार निर्धारित न करें। इस तरह सबकुछ एक आकार को बनाए रखता है जबकि खिड़की का विस्तार करते समय केवल केंद्र फैलता है। इसके अलावा, निचले पैनल को 'फ़्लोलाउट' का उपयोग करना चाहिए। – davidXYZ
@davidXYZ निचले पैनल पर पसंदीदा आकार सेट करने की आवश्यकता नहीं है। पसंदीदा आकार सेटिंग अपवाद है! –
@davidXYZ आप शायद [इस] (http://stackoverflow.com/questions/7229226/should-i-avoid-the-use-of-setpreferredmaximumminimumsize-methods-in-java-swi) को पढ़ना पसंद कर सकते हैं आप pref/max/min आकार – MadProgrammer