Java Swing JOptionPane背景色不同

Java Swing JOptionPane背景色不同,java,swing,joptionpane,uimanager,Java,Swing,Joptionpane,Uimanager,我一直在尝试使用JOptionPane在Swing中显示messagebox,方法是: JOptionPane.showMessageDialog(Component parentComponent, Object message, String title, int mess

我一直在尝试使用
JOptionPane
在Swing中显示messagebox,方法是:

JOptionPane.showMessageDialog(Component parentComponent,
                                     Object message,
                                     String title,
                                     int messageType)
                              throws HeadlessException
消息框如图所示:

当我添加这一行时

UIManager.put("OptionPane.background", Color.white);
选项窗格如图所示:


要在消息框中获得纯白色背景,我应该怎么做?

您需要将面板背景也设置为白色。看

更新

我有以下代码,它对我来说运行良好

import javax.swing.*;
import javax.swing.UIManager;
import java.awt.Color;

public class Dialog {
    public static void main(String[] args){
        UIManager.put("OptionPane.background", Color.WHITE);
        UIManager.put("OptionPane.messagebackground", Color.WHITE);
        UIManager.put("Panel.background", Color.WHITE);
        JOptionPane.showMessageDialog(null, "Invalid Com Port!", "SetColor", JOptionPane.ERROR_MESSAGE);
    }
}
是UIManager的密钥列表

您需要将面板背景也设置为白色。看

更新

我有以下代码,它对我来说运行良好

import javax.swing.*;
import javax.swing.UIManager;
import java.awt.Color;

public class Dialog {
    public static void main(String[] args){
        UIManager.put("OptionPane.background", Color.WHITE);
        UIManager.put("OptionPane.messagebackground", Color.WHITE);
        UIManager.put("Panel.background", Color.WHITE);
        JOptionPane.showMessageDialog(null, "Invalid Com Port!", "SetColor", JOptionPane.ERROR_MESSAGE);
    }
}
是UIManager的密钥列表

没有帮助我。还有其他建议吗please@LakshmiNarasimhanRavichandran复制我更新的代码并测试它。@Muhammd,这也没用。对不起@LakshmiNarasimhanRavichandran我更新了我的代码,请再试一次。public void ShowMessage(最终字符串消息){Thread t=new Thread(new Runnable(){public void run(){UIManager UI=new UIManager();UIManager.put(“OptionPane.background”,Color.WHITE);UIManager.put(“Panel.background”,Color.WHITE);UIManager.put(“OptionPane.messagebackground”,Color.WHITE);JOptionPane.showMessageDialog(frmstryServer,message,Error_Title,Error_message);}});t.start();}对我没有帮助。还有其他建议吗please@LakshmiNarasimhanRavichandran复制我更新的代码并测试它。@Muhammd,这也没用。对不起@LakshmiNarasimhanRavichandran我更新了我的代码,请再试一次。public void ShowMessage(最终字符串消息){Thread t=new Thread(new Runnable(){public void run(){UIManager UI=new UIManager();UIManager.put(“OptionPane.background”,Color.WHITE);UIManager.put(“Panel.background”,Color.WHITE);UIManager.put(“OptionPane.messagebackground”,Color.WHITE);JOptionPane.showMessageDialog(frmstryServer,message,Error_Title,Error_message);}});t.start();}