Eclipse RCP读书笔记(四)

本节主要是书中第四章,即SWT和JFace相关的内容

 

关于SWT和JFace是什么就不多做介绍了。配置SWT开发环境是需要注意的是dll的位置

 

SWT程序的基本结构如下

 

Display display = new Display();
Shell shell = new Shell(display);

 

// 页面相关的代码

 
shell.open();
while (!shell.isDisposed()) {
  if (!display.readAndDispatch()) {
     display.sleep();
  }
}
display.dispose();

 

需要理解Display对象和Shell对象。目前我只对这两个对象有初步的了解。其中,有两个没有解决的问题是:

1. shell对象构造时,传不传入display对象有什么区别?

2. Display对象构造时,调用构造函数和静态方法有什么区别

 

比较重要的是布局管理器,还有常用组件的使用方法。

 

SWT的事件处理机制在本书的该章没有详细介绍。不过有简单的涉及,重要的是事件的Listener。其中匿名内部类的使用也应该有所了解。(包括内部类等)

 

SWT/JFace开发入门指南(四)  中介绍了SWT的时间处理机制

 

其实swt中处理事件非常简单,对应于各种事件都有相应的listener类,如果一种事件叫做Xyz,那么对应的listener类就是XyzListener。比如对应于鼠标事件的有MouseListener,对应于键盘事件的就是KeyListener。而在每种widget中,对于它可以处理的事件都有addXyzListener方法,只要把对应的listener实例作为参数传给它就可以了。

 

另外,在一些情况下Adapter也很有意义。

 

让事件处理更加简单:使用适配器(adapter)

有时候我们可能会感觉这样仍然不够简单,比如我只对SelectionListener中的widgetSelected()方法感兴趣,但是为了能够通过编译器的编译,我却不得不写一个空白的widgetDefaultSelected()方法(因为SelectionListener是一个接口,你必须实现它所有的方法)。

幸运的是,swt帮我们解决了这个问题,途径就是使用adapter。在swt中,对应于一个XyzListener都有一个XyzAdapteradapter都是抽象类并且实现了对应的listener接口,它为对应listener接口中的每个方法都定义了一个默认实现(基本上就是什么都不做),我们在使用时候只需要override掉自己感兴趣的方法就可以了。

结合上一小节中的代码,如果使用SelectionAdapter代替SelectionListener

 

总之,上面介绍的文章有助于了解SWT中的事件处理。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值