JFace向导:如何让进度条不禁用向导GUI

时间:2012-10-25 15:08:29

标签: java user-interface progress-bar jface wizard

我有一个向导,我需要在后台运行一个Job。 我希望进度条显示作业正在运行的事实,但同时,我不希望向导的GUI组件被禁用。 换句话说,当进度条在后台显示作业时,我想继续使用向导。 有可能吗?

感谢大家的帮助!

1 个答案:

答案 0 :(得分:1)

你可以,你只需要确保你开始一个新的工作来完成后台工作,但UI更新仍然发生在UI线程中:

    Job job = new Job("name") {
        @Override
        protected IStatus run(IProgressMonitor monitor) {
            // Do some work

            Display.getDefault().asyncExec(new Runnable() {
                @Override
                public void run() {
                    // Update UI
                }});
            return Status.OK_STATUS;
        }
    };
    job.schedule();