`
aoingl
  • 浏览: 86681 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse 插件实现进度条

 
阅读更多

Eclipse 插件中,很多时候会遇到需要长时间执行的任务, 这些任务需要放在后台线程里运行, 否则,就会使 Eclipse 的 UI 僵住。 这个时候,我们需要使用 Eclipse 提供的 Job 或者 ProgressMonitorDialog 实现。

 

1. 使用 Job

 

 

      Job job = new Job("Job")
      {

         @Override
         protected IStatus run(IProgressMonitor monitor)
         {
            monitor.beginTask("Start Task", 100);
            for (int i = 0; i < 100; i++)
            {
               if (monitor.isCanceled())
               {
                  break;
               }
               try
               {
                  TimeUnit.MILLISECONDS.sleep(200L);
               }
               catch (InterruptedException e)
               {
                  e.printStackTrace();
               }
               monitor.subTask("Start sub task: " + i);
               monitor.worked(1);
            }
            monitor.done();
            return Status.OK_STATUS;
         }
      };
      job.schedule();

 

效果如下:

Job 是异步执行, 在 Job 执行的时候, Eclipse 的主界面还是可以进行其他操作的。

 

2. 使用 ProgressMonitorDialog

 

      ProgressMonitorDialog dialog = new ProgressMonitorDialog(HandlerUtil.getActiveShell(event));
      try
      {
         dialog.run(true, true, new IRunnableWithProgress()
         {

            @Override
            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException
            {
               monitor.beginTask("Start Task", 100);
               for (int i = 0; i < 100; i++)
               {
                  if (monitor.isCanceled())
                  {
                     break;
                  }
                  TimeUnit.MILLISECONDS.sleep(200L);
                  monitor.subTask("Start sub task: " + i);
                  monitor.worked(1);
               }
               monitor.done();
            }
         });
      }
      catch (InvocationTargetException e)
      {
         e.printStackTrace();
      }
      catch (InterruptedException e)
      {
         e.printStackTrace();
      }
 

效果如下:

 

  ProgressMonitorDialog 是 modal 的对话框, 会 block 住 Eclipse 的主界面。

 

  • 大小: 15.1 KB
  • 大小: 7.9 KB
分享到:
评论
1 楼 puhaier 2012-08-15  
有例子吗?可以发我下吗?目前项目组正在使用这个,谢谢。haier.pu@qq.com

相关推荐

    eclipse插件开发-铺设一条插件开发普及之路(1-5章).pdf

    ### Eclipse插件开发知识点梳理 #### 第一章 Eclipse插件概述 ##### 一、Eclipse概述 - **起源与发展**:Eclipse最初由IBM于2000年启动,旨在解决其现有产品如VisualAge for Java和WebSphere Studio难以集成的问题...

    支持eclipse开发的struct2插件

    找了好久,专门用来支持struct2开发用的eclipse插件,可以兼容eclipse中队struct.xml的“小齿轮”显示!好资源,大家共享!

    Eclipse插件开发学习笔记6-11章

    Eclipse插件开发是Java开发领域中的一个重要分支,它允许开发者扩展Eclipse集成开发环境(IDE)的功能,创建自定义工具或工作流程。这本学习笔记涵盖了从第6章到第11章的关键内容,旨在为初学者提供一个扎实的入门指南...

    SVN Eclipse插件Subclipse安装和配置

    Subclipse是Eclipse的一个插件,它将SVN的功能集成到Eclipse中,使得开发者可以在Eclipse环境中方便地进行版本控制操作。下面将详细介绍Subclipse的安装和配置过程。 首先,安装Subclipse插件。在Eclipse中,可以...

    mybatipse eclipse插件

    总之,MyBatipse插件是MyBatis开发者的得力助手,它通过集成各种实用功能,使得在Eclipse中进行MyBatis开发变得更加高效和舒适。如果你是MyBatis框架的使用者,强烈推荐尝试安装并使用MyBatipse,它将极大地提升你的...

    eclipse插件JSEclipse安装包(附带安装方法)

    5. **版本控制**:与其他Eclipse插件兼容,可以集成Git、SVN等版本控制系统。 6. **代码格式化**:提供代码格式化功能,统一代码风格,提高团队合作的效率。 7. **文档查看**:内置JavaScript API文档,方便开发者...

    带进度条的上传,直接部署运行(jsp,servlet,eclipse下开发)

    Eclipse提供了强大的插件支持,使得开发者可以无缝集成各种框架和技术,包括JSP和Servlet的开发。 在"uploadProgress"这个文件夹中,可能包含了以下关键文件和目录: 1. `web.xml`:Web应用的部署描述符,配置了...

    eclipse rcp 插件开发学习笔记.pdf 1-14章

    - 创建Eclipse插件项目,理解MANIFEST.MF和plugin.xml文件的作用。 - 学习如何编写激活类(Activator)和定义插件依赖。 8. **第11章 操作(Actions)**: - 创建和注册Action,将它们与菜单、工具栏或快捷键...

    Eclipse_Galileo_SVN插件安装

    由于Eclipse Galileo本身并未集成SVN插件,因此需要手动安装SVN插件来实现与SVN仓库的交互功能。 #### 二、安装步骤详解 ##### 1. 运行插件安装命令 - **操作路径**:通过Eclipse的帮助菜单启动插件安装流程,具体...

    Eclipse中安装Apatana插件

    ### Eclipse中安装Apatana插件的详细指南 在IT领域,尤其是对于Web开发者而言,Eclipse是一款功能强大的集成开发环境(IDE),而Apatana作为一款专为Web开发设计的插件,能够极大地提升开发效率。本文将详细介绍在...

    struts2_uploadify带进度条的多文件上传下载

    Struts2 Uploadify是一个在Java Web开发中常用的插件,它结合了Struts2框架和Uploadify jQuery插件,能够实现文件的多选、上传进度显示以及后台处理等功能。这个项目示例提供了一个完整的解决方案,使得用户在上传多...

    Eclipse 安装 SVN 在线插件教程

    首先,我们需要了解Subclipse插件,它是Eclipse平台上的一个开源SVN客户端,提供了与Eclipse紧密集成的SVN版本控制功能。Subclipse可以在Eclipse的插件市场中找到并安装。 安装步骤如下: 1. 打开Eclipse IDE,...

    eclipse-inst-win64安装包

    5. **Eclipse插件安装** - Eclipse的强大在于其丰富的插件生态系统,用户可以通过"Help &gt; Eclipse Marketplace"或"Install New Software"来搜索并安装各种插件,增强IDE的功能,例如Git工具、Mylyn任务管理、PyDev ...

    web播放器插件的原理与简单实现

    5. **UI设计**:创建播放器的用户界面元素,如播放按钮、进度条等,并将它们与插件的控制函数绑定。 6. **测试与优化**:在不同浏览器和操作系统上测试插件,修复可能出现的问题,优化性能。 7. **部署与使用**:...

    eclipse 3.6 rcp 开发

    - **程序**: 单个Eclipse插件或一组相关插件。 - **产品**: 包含一个或多个程序的完整应用,可以独立运行。 - **区别**: 产品通常包括启动配置、帮助文档等,使其成为一个完整的、面向用户的软件。 **2.4 维护...

    Eclipse插件开发之Jface

    SWT UI之进度条ProgressBar 6. SWT UI之时间控件DateTime 7. SWT layout之堆叠布局StackLayout 8. swt & jface ui可视化工具安装 9. swt & jface ui可视化工具使用一 10. swt & jface ui可视化工具使用二 11....

    eclipse swt 核心应用

    首先,SWT的核心组件包括按钮、文本框、列表、树视图、表格等,它们都是可定制的,并且可以与其他Eclipse插件如JFace集成,以提供更高级的功能。通过SWT,开发者可以直接访问底层操作系统的服务,例如文件对话框、...

    eclipse 状态栏

    在Eclipse插件开发中,你可以使用`IWorkbenchWindow`接口的`getActivePage().getStatusLineManager()`方法获取当前窗口的状态栏管理者,然后调用其`add`方法添加自定义的贡献项。 5. **优化用户体验** 为了提高...

Global site tag (gtag.js) - Google Analytics