我有一个没有gui的操作类.该课程基本上是数据管理.从我的主GUI中的方法调用该类.我遇到的问题是如果出现故障则向用户显示消息.我正在使用MessageDialog,但它在运行时仍然失败.我认为问题出在壳牌上.当我尝试null用作shell时.
MessageDialog.openError(null, "Printer Error Message", "Error getting print reply file.");
Run Code Online (Sandbox Code Playgroud)
错误是空指针异常
MessageDialog.openError(Display.getCurrent().getActiveShell() etc
Run Code Online (Sandbox Code Playgroud)
错误是空指针异常
MessageDialog.openError(Display.getDefault().getActiveShell()
Run Code Online (Sandbox Code Playgroud)
错误是无效的线程访问
您可以ERROR_THREAD_INVALID_ACCESS使用Display.syncExec或修复错误Display.asyncExec.试试:
Display.syncExec(new Runnable() {
void run() {
MessageDialog.openError(Display.getDefault().getActiveShell()...
}
}
Run Code Online (Sandbox Code Playgroud)