在寻找显示错误的简单方法时,我发现了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)
答案 0 :(得分: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子类