JAVA SWT事件四种写法实例解析

 更新时间:2020年06月05日 12:01:29   作者:jiftle  
这篇文章主要介绍了JAVA SWT事件四种写法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一:匿名内部类写法

在一个组件下加入以下语句

   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爬虫UA伪装爬取的实例讲解

    Python爬虫UA伪装爬取的实例讲解

    在本篇文章里小编给大家整理的是一篇关于Python爬虫UA伪装爬取的实例讲解内容,有需要的朋友们可以学习参考下。
    2021-02-02
  • pandas groupby分组对象的组内排序解决方案

    pandas groupby分组对象的组内排序解决方案

    这篇文章主要介绍了pandas groupby分组对象的组内排序解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python 查找字符串是否存在实例详解

    python 查找字符串是否存在实例详解

    这篇文章主要介绍了python 查找字符串是否存在实例详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • python web框架学习笔记

    python web框架学习笔记

    这篇文章主要为大家分享了python web框架学习笔记,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Python的Flask框架中实现分页功能的教程

    Python的Flask框架中实现分页功能的教程

    这篇文章主要介绍了Python的Flask框架中实现分页功能的教程,文中的示例基于一个博客来实现,需要的朋友可以参考下
    2015-04-04
  • python爬取51job中hr的邮箱

    python爬取51job中hr的邮箱

    这篇文章主要为大家详细介绍了python爬取51job中hr的邮箱的相关资料,需要的朋友可以参考下
    2016-05-05
  • 以大热剧《觉醒年代》为例用Python绘制可视化仪表盘

    以大热剧《觉醒年代》为例用Python绘制可视化仪表盘

    有时候大家想把自己绘制好的可视化图片集中到一个页面,整合成仪表盘,集中给同事或者他人来呈现,但又不知道该怎么做,今天小编就来分享一个实用的第三方模块中的方法,而此次用到的数据便是最近大热门的民国历史剧《觉醒年代》的相关数据,需要的朋友可以参考下
    2021-06-06
  • Python重新引入被覆盖的自带function

    Python重新引入被覆盖的自带function

    最近在写python应用时遇到一个问题: 引入某个模块时会自动引入自定义的int到python的namespace中, 从而覆盖了python自带的int function. 因为我们需要使用python的int, 所以不得不找到重新引入这int的方法.
    2014-07-07
  • 详解Golang 与python中的字符串反转

    详解Golang 与python中的字符串反转

    这篇文章主要介绍了详解Golang 与python中的字符串反转的相关资料,这里提供了实现的实例以便大家学习理解,需要的朋友可以参考下
    2017-07-07
  • 浅谈python中真正关闭socket的方法

    浅谈python中真正关闭socket的方法

    今天小编就为大家分享一篇浅谈python中真正关闭socket的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论