有人设法使用换行符(\n、\r)在 JFace ErrorDialog 中显示详细错误消息吗?
我尝试将 StackTrace 显示为详细消息,但它仅显示在一行中
StringBuffer sbStackTrace = new StringBuffer();
for (StackTraceElement ste : throwable.getStackTrace()) {
sbStackTrace.append(ste.toString()).append('\n');
}
final IStatus status = new Status(IStatus.ERROR, pluginId, statusMsg, new Throwable(sbStackTrace.toString(), throwable));
ErrorDialog dialog = new ErrorDialog(shell, "Error", customMessage, status, IStatus.OK | IStatus.INFO | IStatus.WARNING | IStatus.ERROR)
打开时,ErrorDialog 显示我想要的所有内容,但详细消息的格式不正确。
有什么想法吗?
最佳答案
查看 source for ErrorDialog.java 中的 ErrorDialog.populateList(List, IStatus, int, boolean)
方法,看起来该对话框每行只包含一个 IStatus
,但如果该 IStatus
有子项,它将在后续行中包含它们。因此,您需要构建一个 MultiStatus
对象或创建您自己的 IStatus
实现。
关于java - 在 JFace ErrorDialog 中使用换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4694187/