1

在寻找显示错误的简单方法时,我发现了 SwingX

目前我正在使用

JXErrorPane.showDialog(null, new ErrorInfo("Error", e.getMessage(), null, null, exception, ErrorLevel.SEVERE, null));

结果如下:http: //i.imgur.com/JKeF4.png

我真的很喜欢它的外观,但我不想显示堆栈跟踪。我试过传递 null 而不是异常,但这样我就没有得到详细信息。

有什么办法可以省略堆栈跟踪吗?(像这样:http: //i.imgur.com/kObaH.png

4

1 回答 1

3

如果您不喜欢自动构建的详细信息消息(由 BasicErrorPaneUI 构建,请查看它的 getDetailsAsHtml),您可以传入一个自定义消息,例如:

    Exception e = new NullPointerException("something ...");
    // copied from BasicErrorPaneUI
    StringBuffer html = new StringBuffer("<html>");
    html.append("<h2>" + "Error" + "</h2>");
    html.append("<HR size='1' noshade>");
    html.append("<div></div>");
    html.append("<b>Message:</b>");
    html.append("<pre>");
    html.append("    " + e.toString());
    html.append("</pre>");
    html.append("<b>Level:</b>");
    html.append("<pre>");
    html.append("    " + ErrorLevel.SEVERE);
    html.append("</pre>");
    html.append("</html>");

    ErrorInfo errorInfo = new ErrorInfo("Error", e.getMessage(), 
            html.toString(), null, e, ErrorLevel.SEVERE, null);
    JXErrorPane.showDialog(null, errorInfo);

如果您想更频繁地这样做,我建议您使用自定义 ErrorInfo 子类

于 2012-08-13T11:27:28.993 回答