Eclipse Rap开发 异步刷新UI处理

1、Display.getCurrent()获取的是当前线程的display对象,如果当前在非UI线程中那么获取到的display对象为空;

一般Display.getCurrent() 用来判断当前是否UI线程

2、异步刷新问题,

  • 异步任务需要放到非UI线程中执行,
  • 回头更新UI的时候需要使用display.asynExec(runnable)来执行具体更新UI效果的操作,保证线程的非阻塞

上面的方法在RCP中有效,RAP中刷新UI后需要鼠标点击一次才能出现刷新后的效果

btnNewButton.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {

				new Thread(new Runnable(){

					@Override
					public void run() {
						try {
							Thread.sleep(3000);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
//						Display.getCurrent().asyncExec(new Runnable(){//null point current thread is not ui thread
						shell.getDisplay().asyncExec(new Runnable(){
							@Override
							public void run() {
								text.setText("我特么是异步的!!!???");
							}
						});
					}

				}).start();
			}
		});

  

需要实现异步UI刷新效果(WEB中的数据推送) 需要通过以下模型来实现(不过这个模型是阻塞式的交互效果并不好)

container.getDisplay().timerExec(0, new Runnable(){
            @Override
            public void run() {
                display.timeExec(1000,this);
            }
        });

  

时间: 2024-10-15 17:17:28

Eclipse Rap开发 异步刷新UI处理的相关文章

Eclipse SWT开发教程以及一个连连看游戏的代码实现下载

原创整理不易,转载请标明出处:Eclipse SWT开发教程以及一个连连看游戏的代码实现下载 代码下载地址:http://www.zuidaima.com/share/1772672482675712.htm 我在前面讲过:如果讲GUI编程一味只讲各个控件的使用方法,那么纯粹是浪费大家时间,如果出书,那绝对是骗钱的.所以我并不会详细地讲解SWT各个控件的具体使用方法.然而的众所周知,Eclipse的UI界面是建立在SWT基础之上的,如果一字不提SWT,似乎也不大可能.SWT是一个优秀的GUI编程

【手把手教你Eclipse插件开发】之Eclipse透视图开发

Eclipse有很多的透视图,比如Debug,或者java.下面分别是Debug,和java的透视图,可以发现,他们的结构不一样,展示给使用者的画面也不相同. 下面步入正题,来开发我们自己的透视图. 准备一个插件工程的环境,用来添加我们自己的透视图. 新建一个插件工程 输入我们的工程名字 修改自己想要修改的属性,默认即可. 接下来,eclipse为我们自动生成了一个插件工程. 创建一个透视图类,并添加自己的视图风格. 我们这个时候开始真正的开发一个透视图类.创建一个类,名字叫firstPer 让

搭建Eclipse+MyEclipse开发环境

Eclipse+MyEclipse区别: 一个是开源免费的软件,一个是基由开源免费而开发的收费软件. MyEclipse是在Eclipse的基础上添加了更多插件... 我觉得MyEclipse比Eclipse更容易操作,使用方便.但它是收费的~-_ myEclipse是商业用途, 要注册的, 而且不开源, 因为版权问题, 所以一般的公司是不会用MYECLIPSE ECLIPSE是开源的, 也可以用于WEB开发, 比如装上WTP 插件, 就可以了 Eclipse:IBM 花了4千万美金来开发这个I

Eclipse RCP开发桌面程序

所谓RCP,就是Rich Client Platform的缩写,即富客户平台,是Eclipse进化的产物(自3.0版以后出现),是Eclipse组织向用户提供的强大的开放性开发平台,能够使用户方便地创建自己的基于Eclipse的应用程序,并且这些应用程序能够得到Eclipse的底层支持.更重要的是,我们可以利用Java创建象Eclipse这么漂亮的桌面程序. 我相信,在未来的几年里,RCP一定会变得非常流行.使用RCP,我们可以开发界面象Eclipse这样漂亮的桌面程序,比如医院管理系统啊.CA

Eclipse rcp 开发 : 自定义导航视图CNF(3)为导航视图增加隐藏文件功能

org.eclipse.ui.navigator.navigatorContent 右键新增commonFilter id:  唯一 name :名称 如:*.xml resources description:描述, 如:Hides *.xml resources 在该属性下载增加属性:其中的value为通配xml  <filterExpression>             <and>                <adapt                     

在Eclipse中开发C/C++项目

摘要:通过本文你将获得如何在Eclipse平台上开发C/C++项目的总体认识.虽然Eclipse主要被用来开发Java项目,但它的框架使得它很容易实现对其他开发语言的支持.在这篇文章里,你将学会如何使用CDT(C/C++ Development Toolkit),一个在Eclipse平台上最适用的C/C++工具包. C/C++语言是世界上最流行的程序开发语言,所以Eclipse提供对C/C++语言的支持也就不足为奇了.由于Eclipse只是为开发工具提供一个框架,所以它必须借助外部插件的形式实现

RAP开发入门-开发笔记-bug记录

NamespaceException: The alias '/rwt-resources' is already in use 该bug发生的第一种情况是: This means that more than one application is started in the same context and in the same HttpService. When different applications run in the same HttpService, they have t

RAP开发入门-主题更换

通过配置扩展点修改应用主题 ps:需要提前准备好主题(theme.css)文件 <!-- 注册主题扩展点 --> <extension point="org.eclipse.rap.ui.themes"> <theme file="theme/fancy/fancy.css" id="cn.sunline.lttsweb.application.theme" name="Default theme"

[Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端(续)

前言 本篇是承接上一篇: [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端 在上一篇粗略地介绍了如何使用Top-Down的方式创建一个web service .  但是对于如何部署及调用,以及一些细节的部分基本上没有介绍. 应某些博友的要求, 也适逢自己有空, 接下来就详细介绍一下整个部分如何进行. 环境准备 JDK 肯定要安装了, 这个就不多讲了. 1. eclipse  3.5.2 对eclipse 版本的要求其实不是很严