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 25 Python
python二分查找算法的递归实现方法
May 12 Python
Python算术运算符实例详解
May 31 Python
Python与R语言的简要对比
Nov 14 Python
用python处理图片实现图像中的像素访问
May 04 Python
python高级特性和高阶函数及使用详解
Oct 17 Python
python安装numpy和pandas的方法步骤
May 27 Python
如何使用Python 打印各种三角形
Jun 28 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
python图片灰度化处理的几种方法
Jun 23 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 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版(5)
2006/10/09 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
css配合jquery美化 select
2013/11/29 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
Python的time模块中的常用方法整理
2015/06/18 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
关于多元线性回归分析——Python&SPSS
2020/02/24 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
人民教师求职自荐信
2014/03/12 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
优秀党员先进材料
2014/12/18 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL