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实现k近邻算法的示例代码
Sep 06 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
django使用admin站点上传图片的实例
Jul 28 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 Python
Python列表list操作相关知识小结
Jan 29 Python
django创建超级用户时指定添加其它字段方式
May 14 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 Python
python使用numpy中的size()函数实例用法详解
Jan 29 Python
Python答题卡识别并给出分数的实现代码
Jun 22 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
PHP源代码数组统计count分析
2011/08/02 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
jQuery实现tab标签自动切换的方法
2015/02/28 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
Python多线程下载文件的方法
2015/07/10 Python
python中函数传参详解
2016/07/03 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
python生成并处理uuid的实现方式
2020/03/03 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
python 实现两个npy档案合并
2020/07/01 Python
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
前厅收银主管岗位职责
2014/02/04 职场文书
财产公证书
2014/04/10 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
个人自查自纠材料
2014/10/14 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
Python经常使用的一些内置函数
2022/04/11 Python