自己动手写开发工具--基于eclipse的工具开发

自己动手写开发工具--基于eclipse的工具开发

ID:14439667

大小:70.50 KB

页数:23页

时间:2018-07-28

自己动手写开发工具--基于eclipse的工具开发_第1页
自己动手写开发工具--基于eclipse的工具开发_第2页
自己动手写开发工具--基于eclipse的工具开发_第3页
自己动手写开发工具--基于eclipse的工具开发_第4页
自己动手写开发工具--基于eclipse的工具开发_第5页
资源描述:

《自己动手写开发工具--基于eclipse的工具开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、自己动手写开发工具--基于Eclipse的工具开发户在打开那个数据导入窗口,单击【导入】按钮后就切换到另外一个窗口进行录单操作了。天呀,如果没有提供那个进度条的功能,那么用户单击【导入】按钮以后整个ERP系统就“死掉了”,用户就无法进行任何操作,也就无法做任何工作,难道这半个多小时要他去上网聊QQ、翻纸牌吗?在这一点上Eclipse做的无疑是非常好的。当我们新建一个项目的时候,如果项目的初始化时间比较长,Eclipse就会弹出一个带滚动条的窗口,提示用户正在初始化;对于一些耗时非常长的操作,比如从CVS检出代码,Eclipse会

2、弹出一个带有【在后台运行】按钮的进度对话框,如图3.3所示,用户单击【在后台运行】按钮以后,这个对话框就会关闭,这样用户就可以在Eclipse中进行其他的操作了,避免了长时间等待所造成的时间浪费。图3.3进度条我们最常接触的就是IProgressMonitor了,在很多方法中都要求传递此接口的实例,比如编辑器的doSave方法就是如下声明的:publicvoiddoSave(IProgressMonitormonitor)通过这个接口就可以操控进度条来显示我们当前的保存进度了。不过IProgressMonitor并不是进度条对话

3、框,它要“依靠”一个进度显示器来把进度显示出来,比如最常见的进度对话框ProgressMonitorDialog。部分任务在运行的时候可以由用户选择取消,当用户取消任务的时候,IProgressMonitor的isCanceled方法会返回true,因此我们在任务进行的时候要实时地去调用isCanceled方法,当发现任务被取消的时候要尽快结束任务。我们可以使用Java的标准接口Runnable来实现多线程任务运行,不过在Eclipse中又有了新的选择,那就是IRunnableWithProgress,其声明如下:publici

4、nterfaceIRunnableWithProgress{publicvoidrun(IProgressMonitormonitor)throwsInvocationTargetException,InterruptedException;}这个类的使用和Runnable非常相似,只要把任务放到run方法中就可以了,最重要的是可以调用monitor来对当前进度显示进行控制。下面就是一个完整的进度条演示例子。ProgressMonitorDialogdialog=newProgressMonitorDialog(shell);d

5、ialog.run(true,true,newIRunnableWithProgress(){publicvoidrun(IProgressMonitormonitor)throwsInvocationTargetException,InterruptedException{finalintticks=10000;monitor.beginTask("开始操作",ticks);try{for(inti=0;i

6、ion();monitor.worked(1);}}finally{monitor.done();}}});调用beginTask方法来完成任务,ticks参数表示此任务有多少工作量,调用worked方法报告自上次报告以来当前完成的任务数量,在循环中不断通过isCanceled方法判断当前任务是否被用户取消。需要注意,要在finally中调用done方法完成任务,否则会出现进度对话框无法正常关闭的情况。除了ProgressMonitorDialog外,Eclipse中还可以通过其他方式显示进度,在比如IWorkbenchWind

7、ow通过在工作台窗口的状态行中显示进度来实现此界面,WizardDialog在向导状态行中显示长时间运行的操作。除了可以自己构造进度对话框来显示进度之外,我们还可以调用平台的进度服务,而且Eclipse也推荐使用平台的进度服务,这样可以使所有插件都将具有一致的进度表示。平台的进度服务定义为接口IProgressService,我们可以通过PlatformUI.getWorkbench().getProgressService方法来调用系统的进度服务,例如:IProgressServiceprogressService=Platf

8、ormUI.getWorkbench().getProgressService();progressService.busyCursorWhile(newIRunnableWithProgress(){publicvoidrun(IProgressMonitor

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。