- 浏览: 147589 次
- 性别:
文章分类
最新评论
-
yjp:
效果丢失了,也好不了多少
SWT中使用JFreeChart(无需SWT_AWT) -
vfbrhvfbgd:
LZ,您好,
在网上找到了很多类似你这样的代码,请问您这 ...
一个使用SWT Ribbon代替Eclipse-RCP上面Coolbar的例子~ -
sdyjmc:
我也在看,发现Search不起作用。msn:sdyjmc@16 ...
读jlibrary代码的部分疑问,希望有人解答~ -
alaham:
jlibray研究得如何了呢?权限问题解决了吗?
我目前也正 ...
读jlibrary代码的部分疑问,希望有人解答~ -
bbiao:
你把代码抄错了,范型是不可以这么定义的....
这种模式我也 ...
从Hibernate范型DAO设计打造的自用DAO
JFace进度条使用经验一则
我讨论的进度条主要是JFace的进度条,RCP已经提供了完善的Job组件,为什么还要用JFace的进度条呢?原因是我要在登陆界面上做进度处理,也就是使用Eclipse3.3提供的AbstractSplashHandler特性,可以将原有的启动画面替换成为一个登陆界面,启动这个登陆界面时,Eclipse的Platform此时还没有启动,所以不能使用RCP本身的Job组件了。
由于是一个检测服务器是否联通的测试,所以并不知道测试的真实时间,所以就是要使用“傻瓜进度条”了,也就是反复走的进度条陈刚的代码如下:
button.addSelectionListener(new SelectionAdapter() { private void go() { public void widgetSelected(SelectionEvent e) { private void showProgressDialog() { |
主要是使用两个线程交替使用,第一个线程处理业务,第二个线程监控第一个线程查看它是否结束,如果结束或者被点击cancele则停止进度条的进程,如果一直没有关闭的指令,则反复开始---累加---结束---开始---累加---结束。
我们几乎是把陈刚的代码原原本本的抄袭了一下,仅仅是替换了go()中的内容,但是发现一个问题
new ProgressMonitorDialog(s).run(true, true, runnable);
使用此句的话,JFace的线程永远不会启动;
替换为
new ProgressMonitorDialog(s).run(false, true, runnable);
使用此句的话,JFace的线程可以启动,运行正常,但是cancele不能响应,UI界面完全卡死!
第一个参数的名字fork~乍看去,什么意思都没有,但是看看API才发现内藏很大的玄机,如果为true则此线程为一个非UI线程,大家知道非UI线程是不会阻塞UI的;如果为false则此线程为一个UI线程,大家也知道UI线程如果使用不当很容易阻塞UI的。
关键的问题是我们和陈刚的代码几乎一摸一样他的进度条就启动,我的进度条就不启动!为什么?(这点至今不明白!)
详查API发现如果fork为false的时候还是另有洞天的:
This implementation of IRunnableContext#run(boolean, boolean, IRunnableWithProgress) runs the given |
API中说的很明白,如果fork为false时需要在线程中调用Display.readAndDispatch()方法,以避免UI被阻塞!
大家如果在JFace的开发中如果使用了进度条,发现UI被阻塞的话,就想想我哦!!!呵呵只用在进程中调用一下Display.readAndDispatch()就解决了!
发表评论
-
来自网络上的经典文章收藏帖(不断增加中... ...)
2007-05-15 09:14 1026教你如何使用JFace创建Wizards Creating J ... -
RCP程序怎样实现自适应分辩率最大化(增加版)
2007-05-15 14:02 1300交口称赞在BLOG中提到了一种让RCP最大化的方法: 在App ... -
如何在ViewPart上添加ViewToolBar
2007-05-15 17:58 3781ViewToolBar其实就是Actions。在ViewPar ... -
郁闷的Perspective
2007-05-15 18:11 939下午正式开始RCP开发,于是乎轻车熟路的开始打基础框架。 ... -
读jlibrary代码的部分疑问,希望有人解答~
2007-05-18 10:30 1324昨天在Bolg中贴出来一个很不错的RCP项目http://jl ... -
简单应用Maven2
2007-05-18 13:54 864Maven2对项目的管理确实可以说是无微不至的,而且给出了大量 ... -
介绍一个好站
2007-05-20 10:42 783http://www.krugle.com/代码搜索工具,使用 ... -
Eclipse3.3m7 VS Eclipse3.2.2
2007-05-22 08:37 1084Eclipse3.3m7 VS Eclipse3.2.2没有深 ... -
西安java用户群成立~_~
2007-05-23 15:58 788西安java用户群,感谢dudu,为我们开通团队,所有西安ja ... -
RCP的异常
2007-05-25 12:53 877上次的一篇文章问到为什么TreeViewer没有刷新, ... -
正在规划一个Eclipse上看RSS的Plugin
2007-06-04 08:50 945目前正在规划阶段,初步想法是,实现一个周博通的EclipseP ... -
初识DB4O
2007-06-10 11:15 748DB4O? 新出的OODBMS~取谐音DB fo ... -
如何用WebStart部署RCP应用程序?
2007-06-11 17:19 881上传一份同事写的预研文档:WebStartToRCP.doc ... -
RCP开发者的好去处之ICON系列(持续更新中... ...)
2007-06-11 20:49 874为了找个合适的图片是不是头大的不像样子了?OK,我现在 ... -
庆祝一下~RCP开发者的福音到了!
2007-06-14 22:04 827今天在Eclipse站上学习如何使用Maven2管理Eclip ... -
再次理解Eclipse的类加载机制
2007-06-18 15:13 1071今天在写RCP的基础运行插件的时候,发现一个非常有意思的问题: ... -
插件开发依赖其他插件时一定要注意!
2007-06-19 14:18 2208插件开发依赖其他插件时,我们要在plugin.xml的depe ... -
RCP实践之软件架构
2007-06-19 21:22 681RCP还是新兴的东西,大家都是用它做做小东东,所以在网 ... -
RCP实践之第三方JAR包
2007-06-20 21:43 3190感谢大家对上一篇文章的拍砖,引起的反响不小,目的达到了 ... -
RCP实践之安全模型
2007-06-21 21:52 1062感谢大家最近对本 ...
相关推荐
而JFace则在SWT的基础上构建了一个更高层次的抽象,简化了GUI的开发,特别是数据绑定和视图模型的管理。 SWT的核心特性包括: 1. **原生控件**:SWT通过JNI(Java Native Interface)直接调用操作系统提供的API,...
SWT是用于构建图形用户界面(GUI)的基础组件库,而JFace则是建立在SWT之上,提供了一种更高层次、更抽象的API,使得开发者能够更容易地创建复杂的用户界面。 1. SWT (标准小部件工具包) SWT 是一个开源的Java库,...
JFace则是建立在SWT基础之上的一层抽象,它简化了GUI开发的复杂性,提供了一种面向对象的模型,使得开发者可以更专注于业务逻辑而不是底层细节。JFace的核心概念包括数据绑定、视图、控制器等,这些概念可以帮助我们...
#### 一、SWT与JFace简介 SWT(Standard Widget Toolkit)和 JFace 是 Eclipse 平台的核心组成部分之一,它们主要用于构建基于 Java 的图形用户界面(GUI)。SWT 提供了一套跨平台的低级 API,而 JFace 则建立在 ...
总之,这个压缩包中的源代码将提供一个宝贵的实践平台,帮助开发者深入学习和掌握SWT和JFace的使用,从而提升在Java GUI开发领域的技能。通过分析和运行这些示例,开发者能够更好地理解这两个库的强大功能,以及如何...
JFace的DataBinding使得数据模型和界面元素之间的同步变得容易,而其视图框架则有助于构建结构化的用户界面。在这些章节中,我们可能学习到了如何利用JFace的这些特性来构建更加模块化和可维护的应用程序。 在第10...
在本文中,我们将深入探讨如何使用SWT (Standard Widget Toolkit) 和JFace库来创建一个简易的Web浏览器。SWT是Eclipse项目的一部分,提供了一组原生的GUI控件,使得开发者可以创建与操作系统风格一致的应用程序。...
SWT提供了一组丰富的本地外观控件,而JFace则在此基础上进一步提供了一系列高级功能。 #### SWT概述 SWT是一个Java GUI工具包,旨在为开发者提供一种接近原生应用体验的方式来构建用户界面。与Swing不同,Swing...
SWT是底层的GUI库,提供了与操作系统直接交互的原生控件,而JFace则建立在SWT之上,提供了一层抽象,简化了开发过程并增加了可复用性。 1. SWT (标准小部件工具包): SWT 是一个开源的 Java 库,允许开发者创建与...
SWT是Eclipse平台的基础,它提供了丰富的GUI组件,而JFace则在SWT的基础上构建了一层抽象,使得开发更为简洁且具有面向对象的特性。 1. **SWT概述**:SWT是Eclipse用于构建图形用户界面的基础库,它是开源的,并且...
在实际项目中,开发者通常会结合JFace库使用SWT,JFace提供了一些高级抽象和便利的功能,如数据绑定、视图和编辑器框架等,简化了SWT的使用。JFace的`ViewPart`和`EditorPart`类可以帮助构建Eclipse插件和RCP(Rich ...
JFace是建立在SWT之上的更高层次的框架,它简化了SWT组件的使用,并提供了数据绑定、事件处理等高级功能。在本文中,我们将探讨如何使用SWT中的Slider和Scale控件,通过代码实例来深入理解这两个组件的用法。 首先...
SWT(Standard Widget Toolkit)是Eclipse提供的原生控件库,提供了与操作系统紧密集成的GUI组件,而JFace则是建立在SWT之上的一层抽象,简化了UI开发,使得代码更简洁、可读性更强。本章会讲解如何使用这两者来创建...
AWT是Java最初的GUI库,它的优点在于其稳定性和广泛的可用性,因为它是Java标准的一部分,无需额外安装即可在任何Java运行环境中使用。然而,AWT的设计采用了一个最低共同标准(LCD)的方法,导致其组件和功能相对...
在IT行业中,文件管理是一项基础但至关重要的任务。有时候,我们可能会遇到大量文件需要统一更改文件名的情况,这时批量改名工具就显得尤为...而对于经验丰富的开发者,这样的工具则能提高日常工作效率,减少重复劳动。
7. **与JFace和Eclipse RCP的集成**:SWT是Eclipse Rich Client Platform (RCP) 的基础,JFace则是在SWT之上提供更高层次的抽象,简化GUI开发。两者结合,开发者可以快速构建复杂的桌面应用程序。 源代码包"swt-...
SWT专注于底层的GUI控件实现,提供了丰富的组件和跨平台的支持,而JFace则建立在SWT之上,提供更高层次的应用程序框架,如视图、编辑器、对话框等。它们共同构成了Eclipse强大的GUI开发能力。 #### 开放式、可扩展...