`

Eclipse RCP应用中监视剪贴板变化的小技巧

阅读更多
最近在做的一个基于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执行检查剪贴板的操作。
分享到:
评论

相关推荐

    eclipse rcp应用系统开发方法与实战源代码.zip

    通过这个压缩包中的教程和源代码,开发者不仅可以学习到Eclipse RCP的基本概念,还能掌握实际的开发技巧,从而构建出功能完善的桌面应用程序。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    ECLIPSE+RCP应用系统开发方法与实战(PDF 高岗著)

    通过阅读这本书,开发者可以掌握Eclipse RCP的开发技巧,理解其设计模式,并能够构建自己的桌面应用程序。书中的实例和实践环节对于初学者来说尤其有价值,能够帮助他们快速上手并提升开发能力。

    Eclipse RCP 软件打包发布方法

    1. **新建“产品配置”**:在Eclipse中,你需要通过"File" -> "New" -> "Other" -> "Plug-in Development" -> "Product Configuration"来创建一个新的产品配置。这个配置定义了你的应用程序的基本属性,如应用程序的...

    Eclipse RCP 应用系统开发方法与实战

    "Eclipse RCP 应用系统开发方法与实战"这个主题涵盖了如何利用Eclipse RCP进行高效开发的理论和实践技巧。 1. **Eclipse RCP基础知识**:Eclipse RCP的核心是插件体系结构,允许开发者通过编写插件来扩展功能。每个...

    开发您的第一个 Eclipse RCP 应用程序

    ### 开发您的第一个 Eclipse RCP 应用程序 #### 富客户端平台 (RCP) 概述 **Eclipse Rich Client Platform (RCP)** 是一个强大的框架,旨在利用 Eclipse 平台来构建非集成开发环境 (IDE) 类型的最终用户应用程序。...

    Eclipse RCP 应用系统开发方法与实战 源代码

    本资源提供的"《Eclipse RCP 应用系统开发方法与实战 源代码》"是针对Eclipse RCP开发的实践教程,包含了多个章节的源代码实例,帮助开发者深入理解和掌握Eclipse RCP的开发技巧。 1. **Eclipse RCP基础** Eclipse...

    Eclipse RCP应用系统开发方法与实战(源代码)

    在实际应用中,Eclipse RCP的灵活性和可扩展性使得它可以应用于各种领域,如软件开发工具、科学计算应用、企业级信息系统等。开发者可以结合自身的业务需求,利用Eclipse RCP的强大功能,快速构建出高效、稳定、用户...

    eclipse rcp应用系统开发方法与实战

    在“Eclipse RCP应用系统开发方法与实战”中,你可能学习到如何创建这些组件,配置它们以适应特定需求,以及如何发布和部署你的RCP应用。文件“下载说明.html”可能是项目的下载指南,指导用户如何获取和安装所需的...

    EclipseRCP教程

    Eclipse RCP 教程 Eclipse RCP(Rich Client Platform)是一种基于 Eclipse 平台的客户端开发技术,能够帮助开发者快速构建功能强大...通过本教程,开发者可以快速掌握 Eclipse RCP 的开发技术,并应用于实际项目中。

    Eclipse rcp深入浅出中英文版及配套代码

    12. **案例研究和实践**:书中的配套代码(samples.zip)提供了实际的示例,帮助读者将理论知识应用于实践中,理解Eclipse RCP开发流程。 通过阅读《Eclipse RCP深入浅出》并结合提供的代码样例,开发者不仅可以...

    Eclipse RCP应用系统开发

    【Eclipse RCP应用系统开发】是针对软件开发领域中的一个特定技术,即Eclipse Rich Client Platform(Eclipse RCP)的深入探讨。Eclipse RCP是Eclipse框架下的一个开发平台,它允许开发者构建桌面应用程序,具有丰富...

    Eclipse Rcp

    Eclipse RCP是一种基于Eclipse平台的富客户端平台技术,它允许开发者创建独立于Eclipse环境的Java桌面应用程序。RCP通过提供一套标准组件和API,简化了桌面应用程序的开发流程,使开发者能够专注于业务逻辑而非界面...

    基于Eclipse RCP的复合应用

    在“基于Eclipse RCP的复合应用”中,我们可以理解这是一篇关于如何利用Eclipse RCP框架来构建复杂、模块化的桌面应用的文章或教程。IBM中国研发中心的专家们对此进行了深入研究和实践,分享了他们的经验和见解。IBM...

    Eclipse RCP应用系统开发方法与实战(第四章)

    在“Eclipse RCP应用系统开发方法与实战(第四章)”中,我们将深入探讨如何利用这个平台进行高效且灵活的应用程序开发。本章节主要关注的是实战经验与具体实现步骤,旨在帮助开发者掌握Eclipse RCP的核心概念和技术...

    Eclipse RCP中使用第三方包

    Eclipse RCP中使用第三方包 Eclipse RCP(Rich Client Platform)是一种基于Java的插件式软件架构,允许开发者创建跨平台的桌面应用程序。使用Eclipse RCP,可以快速构建功能强大的客户端应用程序。然而,在实际...

    eclipse rcp应用系统开发 源代码 part1

    eclipse rcp应用系统开发 方法与实践 随书源代码

    Eclipse RCP培训.zip

    Eclipse Rich Client Platform(RCP)是Eclipse框架下的一个核心组成部分,用于构建桌面应用程序。这个"Eclipse RCP培训.zip"文件很可能包含了关于如何开发基于Eclipse RCP的应用程序的各种教程、示例代码和讲解材料...

    ECLIPSE+RCP应用系统开发方法与实战

    非常好的一本JAVA RCP入门实战的书,兼顾理论和实战。

    EclipseRcp 例子程序

    在“Eclipse RCP 例子程序”中,我们可能找到一系列的示例代码和项目,这些示例展示了如何利用Eclipse RCP的各种组件和机制来构建实际的应用。以下是一些关键的知识点: 1. **插件系统**:Eclipse RCP的核心是其...

Global site tag (gtag.js) - Google Analytics