2013-07-29 13 views
11

मैं कुछ JPanel एस में पैडिंग जोड़ना चाहता हूं। मुझे यह जवाब मिला: https://stackoverflow.com/a/5328475/1590323सीमा के साथ जेपीनल में पैडिंग जोड़ने के लिए

यह सीमा के बिना पैनल के लिए ठीक काम करता है। लेकिन मैं इसे ऐसे पैनल के लिए कैसे करूं जो पहले से ही सीमा है? (इस मामले में एक TitledBorder)

मैंने कोशिश की:

JPanel mypanel = new MyPanel(); // Panel that I am going to add a TitledBorder to, but needs padding 
mypanel.setBorder(new EmptyBorder(10,10,10,10)); 
JPanel mypanel_container = new JPanel(); 
TitledBorder border = BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(), "My panel"); 
border.setTitleJustification(TitledBorder.LEADING); 
mypanel_container.setBorder(border); 
mypanel_container.add(mypanel); 
this.add(mypanel_container); 

(संक्षेप में: पैनल के लिए एक EmptyBorder कि एक TitledBorder होना चाहिए जोड़ा जा रहा है, तो TitledBorder के साथ एक और पैनल बनाने के लिए और करने के लिए पहली पैनल जोड़ने वह, और उसके बाद उस पैनल का उपयोग करें)

लेकिन फिर मुझे बहुत बड़ा पैडिंग मिला जिसने EmptyBorder के रचनात्मक मूल्यों को अनदेखा किया।

तो मैं एक जेपीनेल में ग्राफिकल सीमा के साथ पैडिंग कैसे जोड़ूं?

+0

+1, प्रश्न पोस्ट करने से पहले किए गए कड़ी मेहनत के लिए :-) हालांकि, जैसा कि पहले बताया गया है कि यह कुछ समय में आएगा –

+0

@nIcEcOw धन्यवाद :-) –

उत्तर

23

आप CompoundBorder पर एक नज़र डाल सकते हैं।

दो सीमा रचना करने के लिए इस्तेमाल एक समग्र सीमा वर्ग एक बाहरी सीमा वस्तु के सन्निवेश वाली के भीतर एक के अंदर सीमा वस्तु घोंसले बनाने के एक एकल सीमा में वस्तुओं। उदाहरण के लिए, इस वर्ग के एक मौजूदा सजावटी सीमा के साथ एक घटक के खाली मार्जिन स्थान जोड़ने के लिए इस्तेमाल किया जा सकता है:

Border border = comp.getBorder(); 
Border margin = new EmptyBorder(10,10,10,10); 
comp.setBorder(new CompoundBorder(border, margin)); 
बेशक

, आप भी BorderFactory#createCompoundBorder(border, margin) उपयोग कर सकते हैं।

+2

धन्यवाद, 'कंपाउंडबॉर्डर' केवल वही था जो मुझे चाहिए था! –

+0

आपका स्वागत है :) (आपके प्रश्न के लिए +1, उसी कारण ने कहा कि एनआईसीई सीओडब्ल्यू) – NiziL

+0

मेरे लिए काम नहीं कर रहा है। यकीन नहीं है कि क्यों? – Paul

संबंधित मुद्दे