我在eclipse中使用 IRunnableWithProgress 对话框来显示当前的进度状态。每当我打开另一个对话框时,如属性页面,progressdialog就不会出现在前台。有没有办法强制progressDialog始终出现在顶层?
编辑1: 以下是我用于获取此progressDialog的代码:
try {
IRunnableWithProgress process = new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException,
InterruptedException {
monitor.beginTask(taskName, steps);
result = execution(monitor);
monitor.done();
}
};
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setActive();
PlatformUI.getWorkbench().getProgressService().busyCursorWhile(process);
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
您无法控制进度服务显示的对话框。
如果要显示首选项页面(或其他对话框)的进度,请使用ProgressMonitorDialog
而不是进度服务。这也接受IRunnableWithProgress
:
ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell()) {
@Override
protected void configureShell(Shell shell) {
super.configureShell(shell);
shell.setText("Dialog title");
}
};
try {
dialog.run(true, true, progress);
}
... catches ...