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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python实现二分法算法实例
Feb 02 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
python绘制雷达图实例讲解
Jan 03 Python
python简单验证码识别的实现过程
Jun 20 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中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
jquery 模板的应用示例
2013/11/12 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
Vue实现购物车场景下的应用
2017/11/27 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
python将字符串转换成数组的方法
2015/04/29 Python
Django中传递参数到URLconf的视图函数中的方法
2015/07/18 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
Python谱减法语音降噪实例
2019/12/18 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
初中考试作弊检讨书
2014/02/01 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
委托书格式范文
2015/01/28 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL