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的Django框架的运行方式及处理流程
Apr 08 Python
在Python中操作文件之truncate()方法的使用教程
May 25 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
Mar 24 Python
浅谈Python中range和xrange的区别
Dec 20 Python
Python smtplib实现发送邮件功能
May 22 Python
python list转矩阵的实例讲解
Aug 04 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
python判断元素是否存在的实例方法
Sep 24 Python
详解Python openpyxl库的基本应用
Feb 26 Python
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
Jun 05 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
论建造顺序的重要性
2020/03/04 星际争霸
PHP中rename()函数的妙用讲解
2019/02/28 PHP
初学JavaScript第二章
2008/09/30 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
jQuery.Callbacks()回调函数队列用法详解
2016/06/14 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
express express-session的使用小结
2018/12/12 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
python访问纯真IP数据库的代码
2011/05/19 Python
Python open()文件处理使用介绍
2014/11/30 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
python元组的概念知识点
2019/11/19 Python
Django实现内容缓存实例方法
2020/06/30 Python
详解Scrapy Redis入门实战
2020/11/18 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
什么是索引指示器
2012/08/20 面试题
假日旅行社实习自我鉴定
2013/09/24 职场文书
外贸公司实习自我鉴定
2013/09/24 职场文书
数据管理员的自我评价分享
2013/11/15 职场文书
优质服务口号
2014/06/11 职场文书
婚前协议书标准版
2014/10/19 职场文书
终止劳动合同通知书
2015/04/16 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL