有没有办法改变JOptionPane布局,比如顶部的颜色和左上角的图像?
我很好奇,我想知道是否有办法让JOptionPane的顶部变成不同的颜色,比如红色或橙色。 此外,我想知道如何更改JOptionPane左侧的图像。 我猜这是不可能的,因为它已经是一个从java使用的方法。 但我不是专家。
这里有三个选项:
-
使用相应的消息类型使用其中一个预定义图标:
JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.", "Inane error", JOptionPane.ERROR_MESSAGE);
-
使用自定义图标:
JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.", "Inane custom dialog", JOptionPane.INFORMATION_MESSAGE, icon);
-
使用外观在您的应用程序中提供一致的图标: 如何设置外观
有关对话框的更多信息,请查看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; } }