Ren*_*nuz 4 java swing 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的基础,只需将其作为方法的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://gagandeepbali.uk.to/gaganisonline/images/swing/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;
}
}
Run Code Online (Sandbox Code Playgroud)