最近在做的一个基于Eclipse RCP的下载工具,需要监视系统剪贴板中。
自己在实现的时候主要遇到了两个问题:
1.如果监视线程使用非UI线程,则不能去访问剪贴板
2.如果监视线程使用UI线程,则该线程将导致界面阻塞
我找到了两个解决的办法:
1.使用UIJob
UIJob job = new UIJob("ClipBoardMonitorUIJob") {
@Override
public IStatus runInUIThread(IProgressMonitor monitor) {
String textData = (String) clipboard.getContents(textTransfer);
if (!StringUtils.isEmpty(textData) && !textData.equals(last)) {
last = textData;
notifyListeners(last);
System.out.println("剪贴板改变" + last);
}
if (run)
this.schedule(INTERVAL);
return Status.OK_STATUS;
}
};
在这个UIJob中自动的启动下一次对剪贴板的查询,因为都是在UI线程中执行,所以不会产生UI线程访问的问题。在UIJob结束时计划下一次执行的时间。
2.使用线程
public void checkClipBoard() {
display.asyncExec(new Runnable() {
public void run() {
String textData = (String) clipboard.getContents(textTransfer);
if (!StringUtils.isEmpty(textData) && !textData.equals(last)) {
last = textData;
notifyListener(last);
System.out.println("剪贴板改变" + last);
}
}
});
}
public void run() {
while (run && !this.isInterrupted()) {
checkClipBoard();
try {
Thread.sleep(5000);
} catch (Exception e) {
run = false;
}
}
}
在线程中使用Display.asyncExec或者Display.syncExec执行检查剪贴板的操作。
分享到:
- 2007-03-29 10:28
- 浏览 2511
- 评论(0)
- 论坛回复 / 浏览 (0 / 3540)
- 查看更多
相关推荐
通过这个压缩包中的教程和源代码,开发者不仅可以学习到Eclipse RCP的基本概念,还能掌握实际的开发技巧,从而构建出功能完善的桌面应用程序。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。
通过阅读这本书,开发者可以掌握Eclipse RCP的开发技巧,理解其设计模式,并能够构建自己的桌面应用程序。书中的实例和实践环节对于初学者来说尤其有价值,能够帮助他们快速上手并提升开发能力。
1. **新建“产品配置”**:在Eclipse中,你需要通过"File" -> "New" -> "Other" -> "Plug-in Development" -> "Product Configuration"来创建一个新的产品配置。这个配置定义了你的应用程序的基本属性,如应用程序的...
"Eclipse RCP 应用系统开发方法与实战"这个主题涵盖了如何利用Eclipse RCP进行高效开发的理论和实践技巧。 1. **Eclipse RCP基础知识**:Eclipse RCP的核心是插件体系结构,允许开发者通过编写插件来扩展功能。每个...
本资源提供的"《Eclipse RCP 应用系统开发方法与实战 源代码》"是针对Eclipse RCP开发的实践教程,包含了多个章节的源代码实例,帮助开发者深入理解和掌握Eclipse RCP的开发技巧。 1. **Eclipse RCP基础** Eclipse...
12. **案例研究和实践**:书中的配套代码(samples.zip)提供了实际的示例,帮助读者将理论知识应用于实践中,理解Eclipse RCP开发流程。 通过阅读《Eclipse RCP深入浅出》并结合提供的代码样例,开发者不仅可以...
在实际应用中,Eclipse RCP的灵活性和可扩展性使得它可以应用于各种领域,如软件开发工具、科学计算应用、企业级信息系统等。开发者可以结合自身的业务需求,利用Eclipse RCP的强大功能,快速构建出高效、稳定、用户...
### 开发您的第一个 Eclipse RCP 应用程序 #### 富客户端平台 (RCP) 概述 **Eclipse Rich Client Platform (RCP)** 是一个强大的框架,旨在利用 Eclipse 平台来构建非集成开发环境 (IDE) 类型的最终用户应用程序。...
在“Eclipse RCP应用系统开发方法与实战”中,你可能学习到如何创建这些组件,配置它们以适应特定需求,以及如何发布和部署你的RCP应用。文件“下载说明.html”可能是项目的下载指南,指导用户如何获取和安装所需的...
Eclipse RCP 教程 Eclipse RCP(Rich Client Platform)是一种基于 Eclipse 平台的客户端开发技术,能够帮助开发者快速构建功能强大...通过本教程,开发者可以快速掌握 Eclipse RCP 的开发技术,并应用于实际项目中。
【Eclipse RCP应用系统开发】是针对软件开发领域中的一个特定技术,即Eclipse Rich Client Platform(Eclipse RCP)的深入探讨。Eclipse RCP是Eclipse框架下的一个开发平台,它允许开发者构建桌面应用程序,具有丰富...
Eclipse RCP是一种基于Eclipse平台的富客户端平台技术,它允许开发者创建独立于Eclipse环境的Java桌面应用程序。RCP通过提供一套标准组件和API,简化了桌面应用程序的开发流程,使开发者能够专注于业务逻辑而非界面...
在“基于Eclipse RCP的复合应用”中,我们可以理解这是一篇关于如何利用Eclipse RCP框架来构建复杂、模块化的桌面应用的文章或教程。IBM中国研发中心的专家们对此进行了深入研究和实践,分享了他们的经验和见解。IBM...
在“Eclipse RCP应用系统开发方法与实战(第四章)”中,我们将深入探讨如何利用这个平台进行高效且灵活的应用程序开发。本章节主要关注的是实战经验与具体实现步骤,旨在帮助开发者掌握Eclipse RCP的核心概念和技术...
Eclipse RCP中使用第三方包 Eclipse RCP(Rich Client Platform)是一种基于Java的插件式软件架构,允许开发者创建跨平台的桌面应用程序。使用Eclipse RCP,可以快速构建功能强大的客户端应用程序。然而,在实际...
1. **创建新的Eclipse插件项目**: 在Eclipse中选择File -> New -> Other -> Plug-in Project。 2. **定义插件元数据**: 描述插件的基本信息,如名称、ID、版本号等。 3. **实现功能**: 开发插件的核心逻辑和用户界面...
eclipse rcp应用系统开发 方法与实践 随书源代码
Eclipse Rich Client Platform(RCP)是Eclipse框架下的一个核心组成部分,用于构建桌面应用程序。这个"Eclipse RCP培训.zip"文件很可能包含了关于如何开发基于Eclipse RCP的应用程序的各种教程、示例代码和讲解材料...
非常好的一本JAVA RCP入门实战的书,兼顾理论和实战。