java - 如何将 IRunnableWithProgress 始终带到前层?

标签 java eclipse

我在 eclipse 中使用 IRunnableWithProgress 对话框来显示当前的进度状态。每当我打开另一个对话框(例如属性页)时,进度对话框不会出现在前台。有没有办法强制 ProgressDialog 始终出现在顶层?

编辑1: 这是我用来获取此进度对话框的代码:

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();
        }

最佳答案

您无法控制进度服务显示的对话框。

如果您想从首选项页面(或其他一些对话框)显示进度,请使用 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 ...

关于java - 如何将 IRunnableWithProgress 始终带到前层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38429709/

相关文章:

java - 如何解决这个 Android 项目依赖问题?

eclipse - Eclipse CDT“路径和符号”对话框中的“导出”按钮?

java - 错误 : cannot initialize module TreeWalker - Unable to instantiate JUnitTestCase

java - eclipse 中的 Tomcat 不考虑我的修改

java - 单个查询中的多个计数 - Oracle

java - 模拟方法返回 Null

java - 如何在循环中访问对象字段?

java - 如何将特定格式的时间戳文本解析为可用于Java代码中的日期/时间算术的数据?

java - 在 Spring-AMQP 中处理 403

java - Intellij 一行 getter/setter/constructor 美化代码