Java 不带stacktrace的JXerorPane

Java 不带stacktrace的JXerorPane,java,exception,swingx,Java,Exception,Swingx,在寻找显示错误的简单方法时,我发现了SwingX 目前我正在使用 JXErrorPane.showDialog(null,新的ErrorInfo(“Error”,e.getMessage(),null,null,exception,ErrorLevel.SEVERE,null)) 其结果如下: 我真的很喜欢它的外观,但我不想显示堆栈跟踪。我已经尝试过传递null而不是异常,但是这样我无法获得详细信息 有没有办法省略堆栈跟踪? (如下所示:)如果您不喜欢自动生成的详细信息消息(由BasicErro

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

目前我正在使用

JXErrorPane.showDialog(null,新的ErrorInfo(“Error”,e.getMessage(),null,null,exception,ErrorLevel.SEVERE,null))

其结果如下:

我真的很喜欢它的外观,但我不想显示堆栈跟踪。我已经尝试过传递null而不是异常,但是这样我无法获得详细信息

有没有办法省略堆栈跟踪?
(如下所示:)

如果您不喜欢自动生成的详细信息消息(由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);
异常e=新的NullPointerException(“某物…”); //从BasicErrorPaneUI复制 StringBuffer html=新的StringBuffer(“”); 追加(“+”错误“+”); html.append(“
”; html.append(“”); 附加(“消息:”); html.append(“”); append(“+e.toString()); html.append(“”); 追加(“级别:”); html.append(“”); html.append(“+ErrorLevel.SEVERE”); html.append(“”); html.append(“”); ErrorInfo ErrorInfo=新的ErrorInfo(“错误”,例如getMessage(), html.toString(),null,e,ErrorLevel.SEVERE,null); showDialog(null,errorInfo);

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

hmm。。。不太了解您的问题:如果不是stacktrace,您想显示什么?对不起,基本上我想隐藏stack trace的strack trace部分,如果有意义的话,非常感谢!这正是我想要的。@ Shishigami很高兴它有帮助——你可以考虑接受这个答案: