【发布时间】:2014-02-28 01:05:44
【问题描述】:
我正在尝试在 Eclipse RCP 中获取一个 shell,并在我的应用程序中弹出弹出窗口,并且已经阅读了多个资源/教程来完成任务,但运气不佳。
试过了:
Display.getCurrent().getActiveShell();
或
Display.getDefault().getActiveShell();
或
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
有时甚至
Display.getDefault().getShells()[0];
但不同的事情似乎在不同的情况下起作用。
在线资源有不同的观点,我发现大多数事情都说你根本不应该真正使用Display 类,但我试图从 Eclipse 作业中弹出一个弹出窗口。它已经结束并且失败了,需要使用以下方式显示弹出窗口:
代码:
Display.getCurrent().syncExec(new Runnable() {
@Override
public void run() {
MessageDialog.openError(Display.getDefault().getActiveShell(), "Publish", e.getMessage());
}
});
}
弹出窗口位于从 Eclipse 作业启动的线程执行的 Runnable 内。在服务器上调用同步方法时提供进度条更新很复杂,但很有必要。
它不起作用,我不知道为什么。只是从 getActiveShell() 调用中得到一个空值。
真正的问题不是“为什么我的代码不起作用”,而是在 Eclipse RCP 框架中为弹出窗口获取 shell 的绝对正确方法,尤其是在您无法访问工作台的情况下?
【问题讨论】:
标签: java popup eclipse-rcp