繁体   English   中英

自定义JOptionPane图标

[英]Custom JOptionPane Icon

Java的“如何制作对话框”教程展示了这段代码:

//custom title, custom icon
JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.",
        "Inane custom dialog", JOptionPane.INFORMATION_MESSAGE, icon);

这将创建以下对话框:

Java的示例对话框

当图标只是更改为icon参数时,为什么需要JOptionPane.INFORMATION_MESSAGE

该标志还指示在窗口装饰上使用哪种消息样式,请参阅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);

我怀疑这可能有很多原因...例如......

如果提供的icon解析为null (或由于某种原因无法加载基础图像),它将允许JOptionPane回退到消息类型。

它允许外观忽略icon并改为使用消息类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM