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中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
python 垃圾收集机制的实例详解
Aug 20 Python
Python set常用操作函数集锦
Nov 15 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
python关闭占用端口方式
Dec 17 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 Python
django-csrf使用和禁用方式
Mar 13 Python
Python操作Elasticsearch处理timeout超时
Jul 17 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
php实现头像上传预览功能
2017/04/27 PHP
json2.js的初步学习与了解
2011/10/06 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
Vue如何实现验证码输入交互
2020/12/07 Vue.js
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
python3多线程知识点总结
2019/09/26 Python
基于python实现雪花算法过程详解
2019/11/16 Python
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
记者岗位职责
2014/01/06 职场文书
服装促销活动方案
2014/02/23 职场文书
北京奥运会口号
2014/06/21 职场文书
公证委托书
2014/08/01 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
售房协议书范本
2015/08/11 职场文书
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python
JavaScript实现队列结构过程
2021/12/06 Javascript
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python