2012-01-30 16 views
10

मैंने अपने आवेदन में जॉप्शनपेन जोड़ा है लेकिन मुझे नहीं पता कि पृष्ठभूमि रंग को सफेद में कैसे बदला जाए?जॉप्शनपेन के पृष्ठभूमि रंग को कैसे बदला जाए?

`int option = JOptionPane.showConfirmDialog(bcfiDownloadPanel, 
      new Object[]{"Host: " + source, panel}, 
      "Authorization Required", 
      JOptionPane.OK_CANCEL_OPTION, 
      JOptionPane.PLAIN_MESSAGE 
    ); 

    if (option == JOptionPane.OK_OPTION) {     }` 

उत्तर

14

इस तरह

import javax.swing.UIManager; 

UIManager UI=new UIManager(); 
UI.put("OptionPane.background",new ColorUIResource(255,0,0)); 
UI.put("Panel.background",new ColorUIResource(255,0,0)); 

या

UIManager UI=new UIManager(); 
UI.put("OptionPane.background", Color.white); 
UI.put("Panel.background", Color.white); 

JOptionPane.showMessageDialog(null,"Text","SetColor",JOptionPane.INFORMATION_MESSAGE); 
+0

+1 सरल तरीके से – mKorbel

+5

ध्यान दें कि यह सभी मामलों के लिए पृष्ठभूमि को बदल देगा। – mre

+0

क्या यह मेरे कस्टम बटन को भी जोड़ना संभव है? – itro

1

कुछ उपयोग UIManager वर्ग का उपयोग करने और नहीं पूरे सिस्टम सिर्फ इस एक संदेश प्रदर्शित करने के लिए पृष्ठभूमि रंग बदलने के लिए तक ...

Object paneBG = UIManager.get("OptionPane.background"); 
    Object panelBG = UIManager.get("Panel.background"); 
    UIManager.put("OptionPane.background", new Color(...)); 
    UIManager.put("Panel.background", new Color(...)); 

    int ret = messageBox(msg, null, (short)type); 

    UIManager.put("OptionPane.background", paneBG); 
    UIManager.put("Panel.background", panelBG); 
+0

"संदेशबॉक्स()" विधि क्या है? –

3

JOptionPane image

किसी भी व्यक्ति को छवि में समस्या होने के लिए, मैंने एक समाधान पाया/अनुकूलित किया। मेरे सिस्टम पर, मुझे यह परिणाम मिला, कि मैंने यूआईएमएनेजर समाधान का उपयोग किया है क्योंकि अन्य ने पोस्ट किया है, या जेडीअलॉग बनाया है और jd.getContentPane() सेट किया है। सेटबैकग्राउंड (रंग। व्हाइट)। तो यहाँ काम के आसपास मैं, के साथ आया है, जहां आप रिकर्सिवली JOptionPane में प्रत्येक घटक के माध्यम से लूप, और प्रत्येक JPanel की पृष्ठभूमि का रंग सेट करें:

private void getComponents(Container c){ 

    Component[] m = c.getComponents(); 

    for(int i = 0; i < m.length; i++){ 

     if(m[i].getClass().getName() == "javax.swing.JPanel") 
      m[i].setBackground(Color.white); 

     if(c.getClass().isInstance(m[i])); 
      getComponents((Container)m[i]); 
    } 
} 

अपने कोड में जहां संदेश पॉप-अप करना चाहते हैं , की तर्ज पर कुछ:

pane = new JOptionPane("Your message here", 
       JOptionPane.PLAIN_MESSAGE ,JOptionPane.DEFAULT_OPTION); 
     getComponents(pane); 
     pane.setBackground(Color.white); 
     jd = pane.createDialog(this, "Message"); 
     jd.setVisible(true); 

कहाँ JOptionPane pane और JDialog jd पहले से बनाए गए हैं। उम्मीद है कि यह किसी भी व्यक्ति को उस समस्या में मदद करता है।

+0

आपको बहुत धन्यवाद –

+0

यह सबसे अच्छा प्रतिक्रिया है –

0

यदि आपके पास एरिक के एटवुड जैसी समस्या है तो इस कोड का उपयोग करें। यह समस्या हल करता है:

UIManager.put("OptionPane.background", Color.WHITE); 
UIManager.getLookAndFeelDefaults().put("Panel.background", Color.WHITE); 
संबंधित मुद्दे

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