2011-10-22 15 views
5

का रंग कैसे सेट करें I JButton का रंग कैसे सेट कर सकता हूं?जेबटन

मैं इस की कोशिश की है:

button.setBackground(Color.red); 

लेकिन कोई सफलता के साथ। यह सिर्फ बटन की सीमा का रंग बदलता है। मैं तो paintComponents

public void paintComponent(Graphics g) { 
    g.setColor(Color.GREEN); 
    g.fillRect(0, 0, getSize().width, getSize().height); 
} 

ओवरराइड करने की कोशिश की लेकिन अब मैं JButton

उत्तर

6

अपने बटन रंग करने के लिए सबसे अच्छा तरीका है पाठ के बजाय ImageIcons उपयोग करने के लिए है। आप उन्हें डिजाइन करने के लिए Gimp का उपयोग कर सकते हैं।

सुनिश्चित करें कि पृष्ठभूमि पारदर्शी है!

enter image description here

यह है एक सक्षम बटन, नहीं दबाया:

button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/myimage.png"))); 

यह एक विकलांग button.setDisabledIcon(... बटन है

enter image description here

यह एक दबाया सक्षम बटन है:

enter image description here

दबाने के बाद पृष्ठभूमि रंग परिवर्तन स्विंग द्वारा किया जाता है। इसके लिए आपको केवल 2 छवियों की आवश्यकता है।

+0

हाँ, मैं इसे भी आजमाता हूं लेकिन जब मैं पूरे बटन पर आइकन का उपयोग करता हूं तो बटन दबाए जाने पर कोई ग्राफ़िक क्रिया (रंग बदलने में) नहीं होती है। – hudi

+0

यहां छोटी सी चाल यह है कि आपको छवि की पृष्ठभूमि को पारदर्शी बनाना चाहिए। –

+0

+1 लेकिन मुझे नहीं पता कि गिंप को इसके साथ क्या करना है। आप कोड की लगभग 5 पंक्तियों में रन-टाइम पर एक ठोस रंग छवि का उत्पादन कर सकते हैं। –

3

पर पाठ दिखाई नहीं देता क्या पृष्ठभूमि रंग को प्रभावित करता है अपने रूप और महसूस पर निर्भर करता है। http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/index.html

आपको एक ऐसा रूप और अनुभव करना चाहिए जो पृष्ठभूमि रंग का उपयोग आपके इच्छित तरीके से करना चाहिए। मुझे नहीं पता कि इस समय आप क्या उपयोग कर रहे हैं। आप डिफ़ॉल्ट एलएएफ रंग की स्थापना और हटाने के है, तो सीमा पर्याप्त होना चाहिए:

button.setBackground(color); 
button.setBorder(null); 
संबंधित मुद्दे