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 21 Python
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 Python
举例讲解Python中的list列表数据结构用法
Mar 12 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
python中numpy基础学习及进行数组和矢量计算
Feb 12 Python
Python实现的递归神经网络简单示例
Aug 11 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
Python autoescape标签用法解析
Jan 17 Python
Python列表切片常用操作实例解析
Mar 10 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
Selenium python时间控件输入问题解决方案
Jul 22 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 UTF-8、Unicode和BOM问题
2010/05/18 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
js实现内置计时器
2019/12/16 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
ubuntu安装mysql pycharm sublime
2018/02/20 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
python调用私有属性的方法总结
2020/07/24 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
法国珠宝店:CLEOR
2017/01/29 全球购物
社会学专业求职信
2014/07/17 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
介绍长城的导游词
2015/01/30 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
德劲DE1105机评
2022/04/05 无线电
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android