java - 在 JFace ErrorDialog 中使用换行符

标签 java jface

有人设法使用换行符(\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/

相关文章:

java - 指针和垃圾收集

java - JFace 对话框布局问题,在窗口边界之外绘制的小部件

java - Windows XP 上的 jface/swt 树刷新问题

eclipse-plugin - 在 Eclipse 中,如何为对话框中的控件提供上下文/弹出菜单?

java - JFrame鼠标点击停止键盘按钮

java - 如何获取文件的媒体类型(MIME类型)?

java - JFace 应用程序窗口的最小尺寸

java - Windows 状态栏中的应用程序图标

java - 在 spring 集成 ftp :inbound-channel-adapter 中将作业参数传递给过滤器

java - 如何用三项来描述一个状态