SWT事件处理的常用写法

<一>匿名内部类
匿名内部类是最简单的一种方法,适用于对简单的事件处理:
list.addSelectionListener(
    new SelectionListener(){
});
这种写法最简单,缺点是不能够使代码重用,使用这种方法注册的监听器,一旦注册后就不易移除,所以要解决这个问题,可以使用内部类的方法
<二>
SelectionListener listener = new SelectionListener(){
    public void widgetSelected(SelectionEvent e){
    }
    public void widgetDefaultSelected(){
    }
}
list.addSelectionListener(listener );
list.removeSelectionListener(listener );
使用了内部类后,不仅为控件注册监听器,也可在需要的时候移除该监听器,并且也可以为多个控件注册同一个监听器。
另外,通过内部类也可以处理不同的事件,例如有两个按钮,分别注册了同一个监听器对象,如何区分是哪个按钮所触发的事件。
<三>
实现的接口类
监听器本质就是一个接口,就可以利用接口的一般方法来处理,例如,有这样一个雷实现了SelectionListener接口,代码如下:
public class MySelectionListener implements SelectionListener {

@Override
public void widgetDefaultSelected(SelectionEvent e) {
}

@Override
public void widgetSelected(SelectionEvent e) {
}
}
内部类的方法适用于在一个类中处理各种事件,而在实际项目中往往是将所有的事件集中到一个类中,这样其它类中也能够重用该事件处理的代码,所以,实现接口类的方式在项目中是经常适用的。
<四>
继承的类方法
对于有对应的适配器类,还可以通过继承适配器类,然后覆盖适配器类中的方法来实现。
public class MyAdapter extends SelectionAdapter {
public void widgetSelected(SelectionEvent e) {
System.out.println("点击了按钮");
}
public void widgetDefaultSelected(SelectionEvent e) {
}
}
通过继承的方式确保该类没有继承其它类,如果此时该类继承其它的类,那么只能采用实现接口的方法,如果该类没有继承其它类,那么两者都可以使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值