2009-06-30 15 views
21

एक JButton की पृष्ठभूमि का रंग सेट करने के लिए कैसे आप के साथ एक बटन की पृष्ठभूमि का रंग सेट कर सकते हैं स्विंग। लेकिन मैक ओएस पर, इस विधि को अनदेखा किया जा रहा है। बटन सिर्फ डिफ़ॉल्ट रंग रहता है।जावा के साथ आम तौर पर पर मैक ओएस

मैक ओएस पर जेबटन का रंग कैसे सेट किया जा सकता है?

+0

आपको शायद इसे किसी भी तरह से करना होगा और जेएनआई के माध्यम से कार्यात्मक रूप से पहुंचना होगा। मैं मैक्स से नफरत करता हूँ। – ldog

+1

"सिर्फ इसलिए कि आपके अद्वितीय का मतलब आपके उपयोगी नहीं है।" – ldog

उत्तर

32

क्या आपने JButton.setOpaque (true) को सेट करने का प्रयास किया है?

JButton button = new JButton("test"); 
button.setBackground(Color.RED); 
button.setOpaque(true); 
+0

धन्यवाद। मैं setOpaque() कॉल पूरी तरह से चूक गया। –

+4

लगता है कि बटन को अपारदर्शी (जावा 6 पर मैवरिक्स) प्राप्त करने के लिए आपको सेटबॉर्डरेंटेड (झूठी) कमांड जोड़ने की आवश्यकता है। –

+8

ठीक है, यह विंडोज़ जेबटन पृष्ठभूमि को सेट करने का मैक संस्करण नहीं है। यह सचमुच केवल बटन के पीछे पृष्ठभूमि सेट करता है लेकिन विंडोज़ पर बटन रंग बदला जा सकता है। आप ग्रे मैक बटन को एक और रंग के रूप में कैसे बदलते हैं? –

24

क्या आपने चित्रित सीमा को गलत स्थापित करने का प्रयास किया है?

JButton button = new JButton(); 
button.setBackground(Color.red); 
button.setOpaque(true); 
button.setBorderPainted(false); 

यह मेरी मैक :)

+3

हां, विंडो के परिप्रेक्ष्य से एक ही परिणाम प्राप्त करने का प्रयास करते समय यह वास्तव में सही जवाब होना चाहिए। धन्यवाद। –

+0

यह विंडोज 7/जावा 8 पर मेरे लिए काम नहीं करता है। बटन की सतह ग्रे बनी हुई है, बटन के चारों ओर पृष्ठभूमि का केवल थोड़ा रंग बदलता है। – Mischa

+0

यह मैक ओएस 10.11/जावा 8 पर मेरे लिए समाधान था। धन्यवाद! – BNetz

17

आप एप्पल के रंग-रूप का उपयोग करें और महसूस करने के लिए आवश्यक नहीं कर रहे हैं, उन्हें आसानी से ठीक इससे पहले कि आप किसी भी जीयूआई जोड़ने के लिए, आपके आवेदन या एप्लेट में निम्न कोड डाल करने के लिए है काम करता है अपने JFrame या JApplet को घटकों:

try { 
    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 
} catch (Exception e) { 
      e.printStackTrace(); 
} 

कि देखो की स्थापना की और पार मंच देखो करने के लिए लग रहा है और महसूस करेंगे, और setBackground() विधि फिर एक JButton की पृष्ठभूमि का रंग बदलने के लिए काम करेंगे।

+0

मुझे लगता है कि यह सही जवाब है। –

+0

यह पाया है खुशी हुई। मुझे दोनों setLookAndFeel() और setOpaque (true) – humanity

0

मेरे पास एक मैक भी है!

myButton.setBackground(Color.RED); 
myButton.setOpaque(true); //Sets Button Opaque so it works 

कुछ भी करने या किसी घटक को जोड़ने से पहले देखो की स्थापना की और लग रहा है, तो यह बेहतर लग रहा है: यहाँ कोड है कि काम करेगा

try{ 
    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 

स्वरूप बदल करने के लिए महसूस करने के लिए माना जाता है कि क्रॉस प्लेटफॉर्म देखो और महसूस करें, उम्मीद है कि मैंने मदद की! :)

+0

jojo ने पहले से ही – Blauhirn

+0

का उत्तर दिया था, उन्होंने कभी भी MyButton.setOpaque (true) को mensioned नहीं किया; –

0

अपने उद्देश्यों के आधार पर, आप setOpaque (true/false) और setBorderPainted (true/false) के आधार पर ऐसा कर सकते हैं; कोशिश करें और उन्हें अपने उद्देश्य के अनुकूल बनाने के लिए गठबंधन करें

+0

आपको कितनी बार एक ही जवाब दोहराया जाना चाहिए? –

+0

चूंकि अलग-अलग संयोजन अलग-अलग परिणाम प्राप्त करते हैं, इसलिए इसे पोस्ट करें। ठीक है, आपका सुझाव मिला। धन्यवाद। – Xiaogang

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