में जेएलएबल को केंद्रित करना मेरे पास JPanel
से निकाला गया एक पैनल है। मेरे पास JLabel
से व्युत्पन्न कस्टम नियंत्रण है। मैं अपने पैनल पर इस कस्टम JLabel
को केंद्रित करने का प्रयास कर रहा हूं।एक जेनबेल
एकमात्र तरीका यह है कि मैं ऐसा करने के लिए जानता हूं जो काम करेगा, एक शून्य लेआउट (setLayout(null)
) का उपयोग करना है और फिर कस्टम जेलाबेल के setLocation()
बिंदु की गणना करना ताकि यह सही जगह पर हो।
कस्टम JLabel
इस ऐप में एक पैनल से भौतिक रूप से इस पैनल में स्थानांतरित हो गया है और मेरा मानना है कि पहले setLocation
में सेट किया गया स्थान चीजों को प्रभावित कर रहा है। हालांकि जब मैं इसे (0,0) पर सेट करता हूं तो घटक ऊपरी बाएं कोने में जाता है।
BorderLayout
काम नहीं करता है क्योंकि जब केवल 1 घटक प्रदान किया जाता है और BorderLayout.CENTER
में रखा जाता है, तो केंद्रीय अनुभाग सभी जगहों को भरने के लिए फैलता है।
एक उदाहरण मैंने BoxLayout
और component.setAlignmentX(Component.CENTER_ALIGNMENT)
का उपयोग दूसरी साइट से काटा और चिपकाया। यह या तो काम नहीं किया।
पैनल का getInset()
फ़ंक्शन (मुझे लगता है कि यह वही कहा जाता है) को ओवरराइड करने का एक और उत्तर है, लेकिन यह एक मृत अंत साबित हुआ।
अब तक मैं GridBagLayout
लेआउट वाले पैनल के साथ काम कर रहा हूं और जब मैं कस्टम JLabel
को अपने पैनल में सम्मिलित करता हूं तो मैं GridBagConstraints
ऑब्जेक्ट शामिल करता हूं। हालांकि यह अक्षम है। में JLabel
को केन्द्रित करने का कोई बेहतर तरीका है?
ranting से वास्तविक प्रश्न खनन पर विचार करें। –
ओह, और जब मैं ग्रिडबैगलाउट और ग्रिडबैग कॉन्स्ट्रेनेंट्स विधि का उपयोग करता हूं तो चीजें ठीक दिखती हैं यदि मैं छोटा करता हूं और फिर मुख्य विंडो को पुनर्स्थापित करता हूं। – Shackleford
इस पूरे रेंट को लिखने का समय Google 'स्विंग्स के साथ काम कर रहे स्विंग' में टाइप करने के लिए पर्याप्त था, आधिकारिक स्विंग ट्यूटोरियल्स की पहली हिट पर क्लिक करके, विज़ुअल गाइड को देखें, बॉक्सलायआउट का वादा करने का फैसला करें, और एक उदाहरण देखकर जो अधिक करता है या जो भी आप चाहते हैं (इसमें दो घटक आईएसओ एक हैं) – Robin