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实现从url中提取域名的几种方法
Sep 26 Python
Python中logging模块的用法实例
Sep 29 Python
python用Pygal如何生成漂亮的SVG图像详解
Feb 10 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
python 堆和优先队列的使用详解
Mar 05 Python
简单了解python的break、continue、pass
Jul 08 Python
tensorflow 限制显存大小的实现
Feb 03 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 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
第二节 对象模型 [2]
2006/10/09 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
jquery validate demo 基础
2015/10/29 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
Python list运算操作代码实例解析
2020/01/20 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
2014年社区学雷锋活动总结
2014/03/09 职场文书
主办会计岗位职责
2014/03/13 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
妈妈活动方案
2014/08/15 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
安全教育片观后感
2015/06/17 职场文书
如何用python插入独创性声明
2021/03/31 Python