Java的"How to Make Dialogs"教程显示了这段代码:
//custom title, custom icon
JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.",
"Inane custom dialog", JOptionPane.INFORMATION_MESSAGE, icon);
将创建以下对话框:
当图标只更改为JOptionPane.INFORMATION_MESSAGE
参数时,为什么需要icon
?
答案 0 :(得分:4)
该标志还指示要在窗口装饰上使用的消息样式,请参阅http://nadeausoftware.com/node/91#Usinglookandfeelspecificwindowdecorations
来自JOptionPane类的源代码:
private static int styleFromMessageType(int messageType) {
switch (messageType) {
case ERROR_MESSAGE:
return JRootPane.ERROR_DIALOG;
case QUESTION_MESSAGE:
return JRootPane.QUESTION_DIALOG;
case WARNING_MESSAGE:
return JRootPane.WARNING_DIALOG;
case INFORMATION_MESSAGE:
return JRootPane.INFORMATION_DIALOG;
case PLAIN_MESSAGE:
default:
return JRootPane.PLAIN_DIALOG;
}
}
并在showMessageDialog ...
调用showOptionDialog方法中int style = styleFromMessageType(messageType);
JDialog dialog = pane.createDialog(parentComponent, title, style);
答案 1 :(得分:0)
我怀疑这可能有很多原因...例如......
如果提供的JOptionPane
解析为icon
(或由于某种原因无法加载基础图像),它将允许null
回退到消息类型。< / p>
它允许外观忽略icon
并改为使用消息类型。