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中获取对象信息的方法
Apr 27 Python
python中的随机函数小结
Jan 27 Python
python Opencv将图片转为字符画
Feb 19 Python
解决python3 网络请求路径包含中文的问题
May 10 Python
python 利用栈和队列模拟递归的过程
May 29 Python
python 实现敏感词过滤的方法
Jan 21 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
Python3 修改默认环境的方法
Feb 16 Python
Python 实现数据结构中的的栈队列
May 16 Python
Python列表与元组的异同详解
Jul 02 Python
Python的pygame安装教程详解
Feb 10 Python
快速创建python 虚拟环境
Nov 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和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
转一个日期输入控件,支持FF
2007/04/27 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
2010/05/26 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
Vue数据双向绑定原理及简单实现方法
2018/05/18 Javascript
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
Java及python正则表达式详解
2017/12/27 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
softmax及python实现过程解析
2019/09/30 Python
python dataframe NaN处理方式
2019/12/26 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
Django url 路由匹配过程详解
2021/01/22 Python
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
Java基础面试题
2012/11/02 面试题
公关活动策划方案
2014/05/25 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
公司宣传语大全
2015/07/13 职场文书
趣味运动会简讯
2015/07/20 职场文书
求职信如何撰写?
2019/05/22 职场文书
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android