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");}} } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Java运用SWT插件编写桌面记事本应用程序
本文实例介绍了Java基于SWT编写记事本的详细过程,分享给大家供大家参考,具体内容如下 可实现windows系统桌面记事本基本功能,傻瓜式教学,一步一步手把手操作.小白也可自己编写出完整的应用程序. 需要工具:Eclipse(带SWT插件) 成品如下: 应用程序功能介绍: 功能分析: 1.文件(F) 2.编辑(E) 3.格式(O) 4.查看(V) 5.帮助(H) 其中文件菜单中包括 1.1.新建(N) Ctrl+N 1.2打开(O) Ctrl+O 1.3保存(S) Ctrl+S 1.4另存为(
-
Java Swing中JList选择事件监听器ListSelectionListener用法示例
本文实例讲述了Java Swing中JList选择事件监听器ListSelectionListener用法.分享给大家供大家参考,具体如下: 当JList中的元素被选中时,选择事件将被触发.对于JTable也是一样,你可以把它看做是多个并列的JList.那么,如果程序需要对该事件做出响应,需要以下步骤: (1)创建一个实现了 ListSelectionListener的监听器: (2)使用JList或selectionModel的addListSelectionListener添加监听器: (3
-
java实现事件委托模式的实例详解
java实现事件委托模式的实例详解 举例说明: 一个班级,有两类学生,A类:不学习,玩,但是玩的东西不一样,有的是做游戏,与的是看电视(有点不合理) B类:放哨的学生,专门看老师的动向,如果老师进班了就立即通知大家. 如此就形成了一个需求,放哨的学生要通知所有玩的学生:老师来了,而不同的学生有不同的反应,有的马上把电视关闭,有的停止玩游戏. 设计的要求如下,让A类学生和B类学生完全解耦,即A类完全不知道B类的学生,却可以通知B类的学生. 代码及说明如下: Event 类,定义了一个事件类: pa
-
Java Swing实现JTable检测单元格数据变更事件的方法示例
本文实例讲述了Java Swing实现JTable检测单元格数据变更事件的方法.分享给大家供大家参考,具体如下: 在JTable的初级教程中往往会提到,使用TableModel的 addTableModelListener方法可以监听单元格数据的变更,在其事件处理函,数tableChanged中,可以通过e.getColumn(),e.getFirstRow(),e.getLastRow(),e.getType()来获取变更发生的位置和变更的类型(插入.更新或删除).然而该方法存在2个致命的问题
-
浅谈用java实现事件驱动机制
由于项目需求,需要为Java提供一套支持事件驱动机制的类库,可以实现类似于C#中的event和delegate机制.众所周知,Java语言本身以及其标准库中并没有提供事件驱动机制的相关接口,虽然Swing(我且认为其不属于标准库,因为一般没人用:)中存在相关的类支持该机制以实现组件的事件处理,但它毕竟是与GUI相耦合的,而在其它类型的应用程序中使用起来显得就有些别扭,缺乏通用性.因此有必要实现一套通用的Java事件驱动机制类库,然后将其应用于通用的Java应用程序当中,虽然这并不是什么难事:)
-
java使用swt显示图片示例分享
复制代码 代码如下: import org.eclipse.swt.graphics.GC;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.graphics.Rectangle;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell; public class ImagesHelloWorld { public static v
-
java实现table添加右键点击事件监听操作示例
本文实例讲述了java实现table添加右键点击事件监听操作.分享给大家供大家参考,具体如下: 表格监听步骤 1 给表格 添加监听addMouseListener 2 使用MouseAdapter类的mouseClicked方法 3 通过MouseEvent类对象的getbutton方法来判断鼠标操作 BUTTON1 为左键 BUTTON3 为右键 import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; imp
-
java实现点击按钮事件弹出子窗口
本文实例为大家分享了java实现点击按钮事件弹出子窗口的具体代码,供大家参考,具体内容如下 要求: 1.在父窗口中添加一个按钮 2.点击按钮弹出子窗口 注意:这是JDK1.7版本 在JDK1.7之前,JFrame是不能直接添加子窗口的,要先将JInternalFrame添加到JDesktopPane中,再将JDesktopPane添加到父窗口内,完成这个操作. (一)建立父类JFrame package com.java.view; import java.awt.BorderLayout; i
-
JAVA SWT事件四种写法实例解析
一:匿名内部类写法 在一个组件下加入以下语句 text.addMouseListener(new MouseAdapter(){ public void mouseDoubleClich(MouseEVent e){ MessageDialog.openInformation(null,"","helloworld"): }}) 这种方式是在事件内部直接实现处理代码,优点是简单方便,但也存在缺点 ①:事件处理代码会分散的出现在各个部分,维护起来不方便: ②:如果代码
-
JQuery绑定事件四种实现方法解析
jQuery提供了多种绑定事件的方式,每种方式各有其特点,明白了它们之间的异同点,有助于我们在写代码的时候进行正确的选择,从而写出优雅而容易维护的代码.下面我们来看下jQuery中绑定事件的方式都有哪些. jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off.在开始看他们之前 一:bind(type,[data],function(eventObject)) bind是使用频率较高的一
-
Android中activity跳转按钮事件的四种写法
具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.i
-
Android中点击事件的四种写法详解
Android中点击事件的四种写法 使用内部类实现点击事件 使用匿名内部类实现点击事件 让MainActivity实现View.OnClickListener接口 通过布局文件中控件的属性 第一种方法:使用内部类 基本步骤如下: 1. 新建一个MyOnClickListener类并实现View.OnClickListener接口 2. 重写View.OnClickListener接口中的OnClick(View view)方法 3. 给Button绑定一个监听器,并监听一个点击事件 示例代码如下
-
Java对象的四种引用方式实例分析
本文实例讲述了Java对象的四种引用方式.分享给大家供大家参考,具体如下: 一 点睛 Java语言对对象的引用有如下四种方式 强引用:我们平时一般都是这种引用,当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不可能被系统垃圾回收机制回收. 软引用:软引用需要通过SoftReference类来实现,当一个对象只具有软引用时,它有可能被垃圾回收机制回收.对于只有软引用的对象而言,当系统内存空间足够时,它不会被系统回收,程序也可以使用该对象,当系统内存空间不够时,系统可能回收它.软引用通
-
Java编程通过匹配合并数据实例解析(数据预处理)
本文研究的主要是Java编程通过匹配合并数据(数据预处理)的相关内容,具体如下. 数据描述 以下程序是对如下格式的数据进行合并处理. 这个表的每一行表示用户id及用户的特征.其中,一个用户只有一个特征向量,即第一列不会重复. 这张表的第一列,表示用户的id,第二列表示用户所看的电影,第三列表示用户对电影的打分(1-13分),第四列表示用户对电影的打分,但分值范围是1-5分. 问题描述 在做数据预处理时,如何将第二张表添加上用户特征呢?其实,方法很简单,将第二张表的用户id与第一张表的用户id进行
-
Java原子变量类原理及实例解析
这篇文章主要介绍了Java原子变量类原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.原子变量类简介 为何需要原子变量类 保证线程安全是 Java 并发编程必须要解决的重要问题.Java 从原子性.可见性.有序性这三大特性入手,确保多线程的数据一致性. 确保线程安全最常见的做法是利用锁机制(Lock.sychronized)来对共享数据做互斥同步,这样在同一个时刻,只有一个线程可以执行某个方法或者某个代码块,那么操作必然是原子性
-
JSP实时显示当前系统时间的四种方式示例解析
JSP显示当前系统时间的四种方式: 第一种java内置时间类实例化对象: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getSe
-
Java单例模式的8种写法(推荐)
单例:Singleton,是指仅仅被实例化一次的类. 饿汉单例设计模式 一.饿汉设计模式 public class SingletonHungry { private final static SingletonHungry INSTANCE = new SingletonHungry(); private SingletonHungry() { } public static SingletonHungry getInstance() { return INSTANCE; } } 因为单例对象
-
JS中for循环的四种写法示例(入门级)
目录 1. 传统for循环 2. for of 循环 3. for in 循环 4. forEach方法 附完整实例: 总结 1. 传统for循环 for (init; cond; inc) { // body } 与C++或Java类似,for关键字后用小括号描述循环设置,在小括号中用两个分号;将循环设置隔断为三个部分,分别为: init初始化语句(指令),在整个循环开始前执行 cond条件(逻辑表达式),表示循环继续的条件 inc自增语句(指令),在每次循环体结束以后执行 整个循环的执行步骤
随机推荐
- JavaScript 原型继承
- java 代码中预防空指针异常的处理办法
- 详解Java多线程编程中的线程同步方法
- Python在图片中添加文字的两种方法
- iOS微信第三方登录实例
- php中使用Ajax时出现Error(c00ce56e)的详细解决方案
- 我用php+mysql写的留言本
- PHP 变量类型的强制转换
- pycharm中连接mysql数据库的步骤详解
- MySQL定义异常和异常处理详解
- IE浏览器不支持getElementsByClassName的解决方法
- python基础教程之常用运算符
- 详解webpack es6 to es5支持配置
- SqlServer2005 数据库同步配置图文详解
- sql server 临时表 查找并删除的实现代码
- jQuery Validate表单验证深入学习
- bootstrapValidator 重新启用提交按钮的方法
- Java开发之Spring连接数据库方法实例分析
- php中调用其他系统http接口的方法说明
- 基于JavaScript实现屏幕滚动效果