`
aoingl
  • 浏览: 85661 次
  • 性别: 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插件概述 5 一、Eclipse概述 5 二、Eclipse插件(plug-in)概述 6 三、Eclipse插件开发环境与开发入门 8 1.3.1 创建工程及设置环境 8 1.3.2 Activator类 13 1.3.3 plugin.xml与org.eclipse.ui....

    支持eclipse开发的struct2插件

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

    SVN Eclipse插件Subclipse安装和配置

    NULL 博文链接:https://woxiangbo.iteye.com/blog/510631

    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 安装 SVN 在线插件教程

    主要介绍了Eclipse 安装 SVN 在线插件教程的相关资料,这里对安装步骤进行了详细介绍,需要的朋友可以参考下

    java技术员必下的最强大的插件,搜索JSmart_1.3.1.jar(寻觅插件)然后下载

    3/重启动eclipse &lt;br&gt;使用方法: 1、新建一个WEB工程 2、在工程上点右键,选择'寻觅插件..';点击你所需要的功能。 3、如果涉及到新建JSP页面,注意在新建文件时选择'寻觅插件'下的向导,可以快速构建...

    java开发者必用的插件,搜索JSmart_1.3.1.jar(寻觅插件)然后下载

    3/重启动eclipse &lt;br&gt;使用方法: 1、新建一个WEB工程 2、在工程上点右键,选择'寻觅插件..';点击你所需要的功能。 3、如果涉及到新建JSP页面,注意在新建文件时选择'寻觅插件'下的向导,可以快速构建...

    Eclipse_Swt_Jface_核心应用_部分19

    8.2.3 实现接口的类 131 8.2.4 继承的类的方法 132 8.3 键盘事件 132 8.3.1 键盘事件程序示例 132 8.3.2 键盘事件的各种属性 134 8.4 鼠标事件 136 8.4.1 鼠标事件程序示例 136 8.4.2 鼠标事件的各种...

    Eclipse_TomCat集成开发环境搭建

    内容如下: Eclips/TomCate集成开发环境搭建 下载Tomcat 5.5.28并安装测试服务器是否成功 配置Eclipse的Web Tool插件工具最新版 配置Eclipse Web运行环境 jsp页面测试

    Eclipse RCP Plugin 开发自学入门指南(CEC首发)

    1.2 ECLIPSE RCP 建设风格——插件,扩展和扩展点 ..................................................................... 9 1.3 RCP与PLUGIN ....................................................................

    jQuery-uploadify 上传插件

    带进度条的JS上传的demo 例子 直接解压出来导入eclipse 部署即可使用

    Eclipse RCP Plug-in开发自学教程(Eclipse3.6)

    1.2 ECLIPSE RCP 建设风格——插件,扩展和扩展点 .....................................................................9 1.3 RCP与PLUGIN .....................................................................

    基于python的音频播放器的设计与实现.doc

    本论文设计实现了一种在windows环境下可显示波形的音频播放器,利用Qt designer设计音频播放器的界面,利用Eclipse编辑工具为软件开发平台,用Python语言编程来实现音频播放器的各种功能。 该音频播放器由音乐播放...

    Android入门到精通源代码.

    2.4.2 安装和配置Eclipse中Android插件 2.5 使用Eclipse开发Android应用程序 2.5.1 使用Eclipse创建Android项目 2.5.2 Eclipse中Android项目架构 2.5.3 Eclipse中Android项目的调试和运行 第3章 Android中的Activity...

    java开源包3

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包4

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    uploadify多图片(文件)上传

    这是本人写的一个基于uploadify-3.2.1插件上传图片(文件)的Web项目,采用Struts2框架,实现了多图片(文件)上传,并可显示上传进度,不会刷新当前页面,上传成功后,立即显示所上传的图片(文件)。下载解压后...

    android开发入门与实战(下)

    2.3.1 Java、Eclipse和ADT插件安装 2.3.2 设定AndroidSDKHome 2.4 MacOS一族——苹果开发环境搭建 2.5 本章小结 第3章 清点可用资本——AndroidSDK介绍 3.1 AndroidSDK基础 3.2 深入探寻AndroidSDK的密码 3.2.1 ...

    android开发入门与实战(上)

    2.3.1 Java、Eclipse和ADT插件安装 2.3.2 设定AndroidSDKHome 2.4 MacOS一族——苹果开发环境搭建 2.5 本章小结 第3章 清点可用资本——AndroidSDK介绍 3.1 AndroidSDK基础 3.2 深入探寻AndroidSDK的密码 3.2.1 ...

Global site tag (gtag.js) - Google Analytics