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中的数字类型及基本的数学计算
Mar 11 Python
全面了解Nginx, WSGI, Flask之间的关系
Jan 09 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
python os.path模块常用方法实例详解
Sep 16 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
10款最好的Python开发编辑器
Jul 03 Python
python3 webp转gif格式的实现示例
Dec 10 Python
Python celery原理及运行流程解析
Jun 13 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
python switch 实现多分支选择功能
Dec 21 Python
Python中的datetime包与time包包和模块详情
Feb 28 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
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
JavaScript中的立即执行函数表达式介绍
2015/03/15 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
Node.js+Express+Mysql 实现增删改查
2019/04/03 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python client使用http post 到server端的代码
2013/02/10 Python
简单介绍Python中的round()方法
2015/05/15 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python3处理HTTP请求的实例
2018/05/10 Python
python自动发送邮件脚本
2018/06/20 Python
django query模块
2019/04/20 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
Python 解决相对路径问题:"No such file or directory"
2020/06/05 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
python实现三壶谜题的示例详解
2020/11/02 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
Internet体系结构
2014/12/21 面试题
学生周末回家住宿长期请假条
2014/02/15 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
员工家属慰问信
2015/03/24 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS