JAVA SWT事件四种写法实例解析


Posted in Python onJune 05, 2020

一:匿名内部类写法

在一个组件下加入以下语句

text.addMouseListener(new MouseAdapter(){
      public void mouseDoubleClich(MouseEVent e){
     MessageDialog.openInformation(null,"","helloworld"):
}})

这种方式是在事件内部直接实现处理代码,优点是简单方便,但也存在缺点

①:事件处理代码会分散的出现在各个部分,维护起来不方便;

②:如果代码较长,阅读和维护起来麻烦

③:当工具栏、菜单栏也需要相同的行为时,代码无法重用,导致代码臃肿

二:命名内部类写法:

text.addMouseListener(new MyMouseDoubleClick());
...//定义MyMouseDoubleClick.java
private static final class MyMouseDoubleClick extends MouseAdapter{
     public void mouseDoubleClick(MouseEvent e){
          MessageDialog.openInformation(null,"","hello world")
}
}

三:外部类写法:

这种方法与第二种方法类似,只是有内部类变为单个外部类

四:实现监听器接口的写法:

将类实现相应的接口,这样类本身就成了一个监听器,使得加入监听器的代码可以更简洁,这种方法适合加入监听器的组件较多,且要求监听器的事件处理代码可以被组件共用,需要注意的是

事件方法和其他方法混合在一起,所以应加一些注释来说明。没用事件处理方法可以用空来实现。如果继承了了相应的事件适配器,则可根据需要写相应的方法,另外需要注意,只有接口才有多继承的特性,所以如果类本身已经是一个子类,则只有通过实现接口的方式来实现而不能继承接口的适配器。

public class Helloworld extends MouseAdapter implements MouseListener{
     public static void main(String[] args){
 .......
    Text text1=new Text(shell,SWT.Border);
   Text text2=new Text(shell, SWt.Border);
   text1.addMouseListener(this);
   text2.addMouseListener(this);
}
  public void mouseDoubleClick(MouseEvent e){
   MessageDialog.openInformation(null,"","hello world");}}
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python函数式编程指南(四):生成器详解
Jun 24 Python
浅谈Python 对象内存占用
Jul 15 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
Feb 10 Python
Python DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 Python
python协程之动态添加任务的方法
Feb 19 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
Python Django搭建网站流程图解
Jun 13 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 Python
基于Python下载网络图片方法汇总代码实例
Jun 24 Python
Python列表推导式实现代码实例
Sep 09 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 #Python
基于Python爬虫采集天气网实时信息
Jun 05 #Python
浅谈pymysql查询语句中带有in时传递参数的问题
Jun 05 #Python
Python调用.net动态库实现过程解析
Jun 05 #Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 #Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 #Python
python3检查字典传入函数键是否齐全的实例
Jun 05 #Python
You might like
德劲1104的电路分析与改良
2021/03/01 无线电
php实现网站文件批量压缩下载功能
2015/10/28 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
flexigrid 参数说明
2010/11/23 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
2016/06/03 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
简述vue中的config配置
2018/01/23 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
Python多线程下载文件的方法
2015/07/10 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
python监控文件并且发送告警邮件
2018/06/21 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
Python代码需要缩进吗
2020/07/01 Python
python推导式的使用方法实例
2021/02/28 Python
C语言面试题
2015/10/30 面试题
晚归检讨书
2014/02/19 职场文书
优秀食品类广告词
2014/03/19 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
win10安装配置nginx的过程
2021/03/31 Servers