2012-08-13 13 views
6

हाय की एक तरफ (यानी, दाएं सीमा वाली रेखा) प्राप्त करने का कोई तरीका है हाय मैंने एक स्विंग फ्रेम तैयार किया जिसमें मैंने दो टेक्स्ट फ़ील्ड रखे। Jtextfield रंग के एक तरफ (यानी, सही सीमा रेखा) प्राप्त करने का कोई तरीका है? कृपया सुझाव दे। मैंने कई चीजों की जांच की, लेकिन मुझे नहीं मिला। अग्रिम धन्यवाद।क्या jtextfield रंग

उत्तर

8

मैं पाठ क्षेत्र के लिए एक सीमा जोड़ना होगा रहे हैं, की तर्ज पर कुछ:

Border oldBorder = jTextField.getBorder(); 
Border redBorder = BorderFactory.createMatteBorder(0, 0, 0, 5, Color.RED); 
Border newBorder = BorderFactory.createCompoundBorder(redBorder, oldBorder); 
jTextField.setBorder(newBorder); 

यह दृष्टिकोण पुरानी सीमा रखता है और इसे आपकी लाल (आंशिक) सीमा के अंदर लपेटता है।

+0

दूसरे उत्तर की तुलना में क्लीनर, हालांकि मुझे नहीं लगता कि ओपी को मूल सीमा रखने की जरूरत है। – brimborium

+0

आपको बहुत धन्यवाद जैकब। जैसे ही मैं केवल मैटबॉर्डर लागू करता हूं, टेक्स्टफील्ड भी इसकी मूल सीमा खो रहा है और केवल एक तरफा लाल सीमा प्रदर्शित कर रहा है और टेक्स्ट फ़ील्ड की बजाय एक रेखा की तरह दिख रहा है। लेकिन आपके जवाब ने उस परिदृश्य से परहेज किया। – Kanth

4

Border कक्षा से विस्तार करके और अपने घटक के लिए अपनी खुद की कस्टम सीमा बनाकर आप अपना खुद का CustomBorder कक्षा बना सकते हैं। अपने Component के उदाहरण कुछ की तरह पर setBorder() को फोन करके यह निर्धारित करें:

class MyBorder implements Border { 

    @Override 
    public void paintBorder(Component cmpnt, Graphics grphcs, int x, int y, int width, int height) { 
     //draw your border here 
    } 

    @Override 
    public Insets getBorderInsets(Component cmpnt) { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 

    @Override 
    public boolean isBorderOpaque() { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 

} 

संदर्भ:

+1

** प्रश्न चिह्न ** बहुत अंत में क्यों? यह कोई मतलब नहीं बना रहा है। हालांकि कस्टम सीमा के लिए +1 :-) –

+0

लॉल यह एक प्रश्नोत्तरी सुझाव था :) –

+1

स्निपेट प्रदान करते समय, ** i/i1/i2/i3 ** के बजाय उचित नामों का उपयोग करना बेहतर होगा, * * int x, int y, int width, int ऊंचाई **, ताकि यह संदेश को व्यक्त करे, बिना किसी विचार के :-) –

8

उदाहरण में नीचे मैं 5 पिक्सल के बाईं ओर सीमा कहा:

JTextField jtf = new JTextField();   
jtf.setBorder(BorderFactory.createMatteBorder(0, 5, 0, 0, Color.BLACK)); 

थी एक सही पक्ष सीमा है:

jtf.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 5, Color.BLACK)); 

मुझे आशा है कि यह है कि तुम क्या करने के बाद

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