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
分享到:
相关推荐
### Eclipse插件开发知识点梳理 #### 第一章 Eclipse插件概述 ##### 一、Eclipse概述 - **起源与发展**:Eclipse最初由IBM于2000年启动,旨在解决其现有产品如VisualAge for Java和WebSphere Studio难以集成的问题...
找了好久,专门用来支持struct2开发用的eclipse插件,可以兼容eclipse中队struct.xml的“小齿轮”显示!好资源,大家共享!
Eclipse插件开发是Java开发领域中的一个重要分支,它允许开发者扩展Eclipse集成开发环境(IDE)的功能,创建自定义工具或工作流程。这本学习笔记涵盖了从第6章到第11章的关键内容,旨在为初学者提供一个扎实的入门指南...
Subclipse是Eclipse的一个插件,它将SVN的功能集成到Eclipse中,使得开发者可以在Eclipse环境中方便地进行版本控制操作。下面将详细介绍Subclipse的安装和配置过程。 首先,安装Subclipse插件。在Eclipse中,可以...
总之,MyBatipse插件是MyBatis开发者的得力助手,它通过集成各种实用功能,使得在Eclipse中进行MyBatis开发变得更加高效和舒适。如果你是MyBatis框架的使用者,强烈推荐尝试安装并使用MyBatipse,它将极大地提升你的...
5. **版本控制**:与其他Eclipse插件兼容,可以集成Git、SVN等版本控制系统。 6. **代码格式化**:提供代码格式化功能,统一代码风格,提高团队合作的效率。 7. **文档查看**:内置JavaScript API文档,方便开发者...
Eclipse提供了强大的插件支持,使得开发者可以无缝集成各种框架和技术,包括JSP和Servlet的开发。 在"uploadProgress"这个文件夹中,可能包含了以下关键文件和目录: 1. `web.xml`:Web应用的部署描述符,配置了...
- 创建Eclipse插件项目,理解MANIFEST.MF和plugin.xml文件的作用。 - 学习如何编写激活类(Activator)和定义插件依赖。 8. **第11章 操作(Actions)**: - 创建和注册Action,将它们与菜单、工具栏或快捷键...
由于Eclipse Galileo本身并未集成SVN插件,因此需要手动安装SVN插件来实现与SVN仓库的交互功能。 #### 二、安装步骤详解 ##### 1. 运行插件安装命令 - **操作路径**:通过Eclipse的帮助菜单启动插件安装流程,具体...
### Eclipse中安装Apatana插件的详细指南 在IT领域,尤其是对于Web开发者而言,Eclipse是一款功能强大的集成开发环境(IDE),而Apatana作为一款专为Web开发设计的插件,能够极大地提升开发效率。本文将详细介绍在...
Struts2 Uploadify是一个在Java Web开发中常用的插件,它结合了Struts2框架和Uploadify jQuery插件,能够实现文件的多选、上传进度显示以及后台处理等功能。这个项目示例提供了一个完整的解决方案,使得用户在上传多...
首先,我们需要了解Subclipse插件,它是Eclipse平台上的一个开源SVN客户端,提供了与Eclipse紧密集成的SVN版本控制功能。Subclipse可以在Eclipse的插件市场中找到并安装。 安装步骤如下: 1. 打开Eclipse IDE,...
5. **Eclipse插件安装** - Eclipse的强大在于其丰富的插件生态系统,用户可以通过"Help > Eclipse Marketplace"或"Install New Software"来搜索并安装各种插件,增强IDE的功能,例如Git工具、Mylyn任务管理、PyDev ...
5. **UI设计**:创建播放器的用户界面元素,如播放按钮、进度条等,并将它们与插件的控制函数绑定。 6. **测试与优化**:在不同浏览器和操作系统上测试插件,修复可能出现的问题,优化性能。 7. **部署与使用**:...
- **程序**: 单个Eclipse插件或一组相关插件。 - **产品**: 包含一个或多个程序的完整应用,可以独立运行。 - **区别**: 产品通常包括启动配置、帮助文档等,使其成为一个完整的、面向用户的软件。 **2.4 维护...
SWT UI之进度条ProgressBar 6. SWT UI之时间控件DateTime 7. SWT layout之堆叠布局StackLayout 8. swt & jface ui可视化工具安装 9. swt & jface ui可视化工具使用一 10. swt & jface ui可视化工具使用二 11....
首先,SWT的核心组件包括按钮、文本框、列表、树视图、表格等,它们都是可定制的,并且可以与其他Eclipse插件如JFace集成,以提供更高级的功能。通过SWT,开发者可以直接访问底层操作系统的服务,例如文件对话框、...
在Eclipse插件开发中,你可以使用`IWorkbenchWindow`接口的`getActivePage().getStatusLineManager()`方法获取当前窗口的状态栏管理者,然后调用其`add`方法添加自定义的贡献项。 5. **优化用户体验** 为了提高...