2011-03-16 15 views
86

मेरे जावा स्विंग एप्लिकेशन के लिए मेरे पास एक स्वरूपण प्रश्न है। यह काफी सरल होना चाहिए, लेकिन मुझे किसी भी सहायता को खोजने में कठिनाई हो रही है (प्रत्येक विषय जेपीनल में किसी भी डिफ़ॉल्ट पैडिंग को हटा रहा है)। मेरे विभिन्न जेपीनलों में पाठ रंगीन सीमाओं को छूने, किनारों और शीर्ष को गले लगाता है: मैं पैडिंग कैसे जोड़ सकता हूं? धन्यवाद।जावा में जेपीनल पैडिंग

उत्तर

196

अपने JPanel के आसपास EmptyBorder सेट करें।
उदाहरण:

JPanel p =new JPanel(); 
p.setBorder(new EmptyBorder(10, 10, 10, 10)); 
+35

या आप मौजूदा सीमा arround कुछ अतिरिक्त गद्दी हो सकता है: 'p.setBorder (BorderFactory.createCompoundBorder (नया एम्प्टीबॉर्डर (10, 10, 10, 10), नया एच्च्डबॉर्डर()); ' – Synox

+3

संबंधित नोट पर: यदि कोई कस्टम घटक विकसित कर रहा है (यानी 'पेंट *()' ओवरराइड करना), तो इन्हें इन्हें पूरा करना चाहिए सीमाएं: http://www.javaswingcomponents.com/blog/custom-swing-component-development-tip-insets-matter। – TWiStErRob

+0

विंडो का आकार बदलने पर क्या होता है? यह समाधान अच्छा नहीं है तो क्या यह है? –

3

जब आप JPanel अंदर गद्दी की जरूरत है आम तौर पर आप गद्दी लेआउट प्रबंधक प्रयोग कर रहे हैं के साथ जोड़ें। ऐसे मामले हैं जिन्हें आप JPanel की सीमा का विस्तार कर सकते हैं।

+1

लेआउट मैनेजर में पैडिंग जोड़ना (मेरे मामले में, ग्रिडलाउट) आसन्न पैनलों के बीच पैडिंग जोड़ता है, लेकिन एक व्यक्तिगत पैनल के भीतर नहीं। लेकिन एक सीमा होगी, मदद के लिए धन्यवाद। – Connor

3

मुझे लगता है कि आपके जेपीनल में डेमो के लिए जेटीक्स्टफिल्ड शामिल है।

वे घटक JTextComponent#setMargin() विधि प्रदान करते हैं जो आपको लगता है कि आप क्या देख रहे हैं।

आप अपने पाठ के आसपास किसी भी आकार के एक खाली सीमा लिए देख रहे हैं, ठीक है, का उपयोग EmptyBorder

0
JPanel p=new JPanel(); 
GridBagLayout layout=new GridBagLayout(); 
p.setLayout(layout); 
GridBagConstraints gbc = new GridBagConstraints(); 
gbc.fill=GridBagConstraints.HORIZONTAL; 
gbc.gridx=0; 
gbc.gridy=0; 
p2.add("",gbc); 
संबंधित मुद्दे