有没有办法改变JOptionPane布局,比如顶部的颜色和左上角的图像?

我很好奇,我想知道是否有办法让JOptionPane的顶部变成不同的颜色,比如红色或橙色。 此外,我想知道如何更改JOptionPane左侧的图像。 我猜这是不可能的,因为它已经是一个从java使用的方法。 但我不是专家。

这里有三个选项:

  1. 使用相应的消息类型使用其中一个预定义图标:
    JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.", "Inane error", JOptionPane.ERROR_MESSAGE);

  2. 使用自定义图标:
    JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.", "Inane custom dialog", JOptionPane.INFORMATION_MESSAGE, icon);

  3. 使用外观在您的应用程序中提供一致的图标: 如何设置外观

有关对话框的更多信息,请查看Java Tutorial的此页面 。

您可以将自己的ImageIcon添加到JOptionPane – 检查API,然后尝试使用Icon字段调用方法,传入您自己的ImageIcon以查看其工作原理。 您还可以创建一个复杂的JPanel,一个完整的包含GUI的JPanel,并将其作为JOptionPane的基础,只需将其作为JOptionPane.showXXX(...)的Object参数(通常是第二个参数)传递即可JOptionPane.showXXX(...)方法。

另一个选择是创建和使用自己的模态JDialog。

一个工作代码:

 import java.awt.Color; import javax.swing.*; public class JOptionPaneExample { private void createAndDisplayGUI() { JOptionPane.showMessageDialog(null, getOptionPanel(), "Modified JOptionPane : ", JOptionPane.PLAIN_MESSAGE); } public static void main(String... args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new JOptionPaneExample().createAndDisplayGUI(); } }); } private JPanel getOptionPanel() { JPanel panel = new JPanel(); panel.setOpaque(true); panel.setBackground(Color.RED); try { java.net.URL url = new java.net.URL("http://sofzh.miximages.com/java/geek.gif"); ImageIcon image = new ImageIcon(url); JLabel label = new JLabel("I am one MODIFIED JOPTIONPANE's LABEL.", image, JLabel.RIGHT); panel.add(label); } catch(Exception e) { e.printStackTrace(); } return panel; } }