如何完全为JOptionPane添加背景颜色?

时间:2016-05-04 07:53:20

标签: swing awt

我没有为JOptionPane获得完整的背景颜色。

下面有一个输出屏幕:

http://i.stack.imgur.com/i4tvh.png

我的代码:

JFrame frame1 = new JFrame("Showing Error Message");
                    UIManager UI=new UIManager();
                    UI.put("OptionPane.background", Color.BLUE);
                    UI.put("OptionPane.messagebackground", Color.BLUE);
                    UI.put("Panel.background", Color.BLUE);
                    JOptionPane.showMessageDialog(frame1,errorMessage1);

This is my Output Image

enter image description here

2 个答案:

答案 0 :(得分:2)

首先,UIManager的公共方法是静态的。创建UIManager的实例是不正确的,误导性的,毫无意义的。调用这些方法的正确方法是:

UIManager.put("OptionPane.background", Color.BLUE);
UIManager.put("OptionPane.messagebackground", Color.BLUE);
UIManager.put("Panel.background", Color.BLUE);

这是整个样本。

import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;

public class Main extends JFrame
{
   public static void main(String []args) {
      UIManager.put("OptionPane.background", Color.blue);
      UIManager.put("Panel.background", Color.blue);
      UIManager.put("Button.background", Color.white);

      String value = JOptionPane.showInputDialog("Enter your name");
      System.out.println("Hello " + value);

      // exit awt thread
      System.exit(1);
   }
}

screenshot

答案 1 :(得分:0)

在 nimbus 外观和感觉中,所有代码都无法使用。

解决办法是,

UIManager.put("control", new Color(0, 0, 0));

这也称为“Dark Nimbus”,将此添加到主框架的主要方法的顶部。 所以它会自动改变所有JOptionPane的背景。

而且你也不能用

改变按钮背景
UIManager.put("OptionPane.buttonBackground", BLACK);

所以你应该使用,

UIManager.put("nimbusBase", new Color(0, 0, 0));

请记住 - 但不幸的是,此代码将更改您所有按钮等的背景。因此,您必须将 *.setBackground(...); 添加到所有其他对象。

如果你想改变 JOptionPane 的前景,你应该使用

UIManager.put("text", new Color(255, 255, 255));

再次不幸的是,这将改变您所有文本的前景。

这些代码都被称为暗光云。

如果您正在使用 nimbus,您可以尝试使用这些 UIManager 代码来自定义 nimbus 的外观和感觉。

UIManager.put("control", new Color(0, 0, 0));
UIManager.put("info", new Color(0, 0, 0));
UIManager.put("nimbusBase", new Color(0, 0, 0));
UIManager.put("nimbusAlertYellow", new Color(248, 187, 0));
UIManager.put("nimbusDisabledText", new Color(255, 255, 255));
UIManager.put("nimbusFocus", new Color(115, 164, 209));
UIManager.put("nimbusGreen", new Color(176, 179, 50));
UIManager.put("nimbusInfoBlue", new Color(66, 139, 221));
UIManager.put("nimbusLightBackground", new Color(0, 0, 0));
UIManager.put("nimbusOrange", new Color(191, 98, 4));
UIManager.put("nimbusRed", new Color(169, 46, 34));
UIManager.put("nimbusSelectedText", new Color(255, 255, 255));
UIManager.put("nimbusSelectionBackground", new Color(18, 134, 175));
UIManager.put("text", new Color(255, 255, 255));

你可以试试这些代码。在我的项目中,灵气看起来像

但我总是推荐使用“Flatleaf”(搜索谷歌“FlatLafLookAndFeel”或去jar.download.com“)。它是专业的,你可以自己改变。