2010-02-01 4 views
30

मैं BorderFactory का उपयोग कर सीमाओं बनाने के लिए कैसे पता है, लेकिन मैं कुछ भी मुझे निर्दिष्ट क्या पक्षों मैं पर सीमा चाहते हैं देता है कि नहीं दिख रहा है:, एसक्या जावा पक्ष स्विंग सीमा केवल शीर्ष तरफ हो सकती है?

उत्तर

35

Sun tutorial से:

अगली तस्वीर कुछ मैट सीमाओं को दिखाती है। मैट सीमा बनाते समय, आप निर्दिष्ट करते हैं कि कितने पिक्सेल को एक घटक के शीर्ष, बाएं, नीचे, और पर स्थित है।

http://java.sun.com/docs/books/tutorial/figures/uiswing/components/BorderDemo2.png

(Java docs)

5

मैट और खाली सीमा आप हर तरफ आकारों का उल्लेख करने की अनुमति है जो हो सकता है शून्य हो।

Border इंटरफ़ेस स्वयं को लागू करने के लिए बहुत आसान है यदि आप एक कस्टम रूप चाहते हैं। मुझे लगता है कि जावा लाइब्रेरी में शामिल शैलियों वाली तीसरी पार्टी लाइब्रेरी उपलब्ध नहीं हो सकती हैं।

62

आप प्रत्येक पक्ष में सीमा के आयाम निर्दिष्ट करने के लिए MatteBorder का उपयोग कर सकते हैं। MatteBorder की contructor है:

public MatteBorder(int top, 
        int left, 
        int bottom, 
        int right, 
        Color matteColor) 

तो अगर आप केवल अपने JPanel के नीचे और दाएँ पक्ष पर एक सीमा करना चाहते हैं, आप ऐसा ही कुछ लिख सकते हैं:

JPanel panel = new JPanel(); 
panel.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, Color.BLACK)); 
+6

वहाँ एक आसान तरीका MatteBorder कोनों के लिए बेवल शैली राउंडिंग उपयोग करने के लिए प्राप्त करने के लिए है? मुझे प्रदान किए गए तत्व के किनारों को नियंत्रित करने के लिए मैट सीमा का उपयोग करने की आवश्यकता है, लेकिन मैं स्क्वायर कोनों से फंस गया हूं। ;-( – emeraldjava

+1

प्लस 1 वास्तव में कोड प्रदान करने के लिए। यह स्वीकार्य उत्तर होना चाहिए! –

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