【发布时间】:2012-09-21 17:56:44
【问题描述】:
我有一个没有 gui 的操作类。该课程主要进行数据管理。该类是从我的主 GUI 中的方法调用的。我遇到的问题是在出现故障时向用户显示消息。我正在使用MessageDialog,但它在运行时一直失败。我认为问题在于壳牌。当我尝试使用null 作为外壳时。
MessageDialog.openError(null, "Printer Error Message", "Error getting print reply file.");
错误是空指针异常
MessageDialog.openError(Display.getCurrent().getActiveShell() etc
错误是空指针异常
MessageDialog.openError(Display.getDefault().getActiveShell()
错误是无效的线程访问
- 由于这不是 GUI 类,我是否必须从 GUI 父级传入 shell?
- 我可以在类中创建一个 shell 然后使用它吗?
【问题讨论】:
-
我最终使用了你的两个答案。我没有导入正确的 Shell 类。我还必须使用 Display.getDefault().asyncExec(new Runnable() { 来避免线程问题。并且不知道如何选择两者作为答案
-
您不能同时选择两者作为答案。您可以对两者都投赞成票,然后选择您将接受的一个作为答案。