当前课程知识点:“做中学”Java程序设计 > 第6章使用SWT设计界面 > 6.5常见事件处理写法 > Video
对于SWT事件处理的写法呢
我们通常有这样几种
第一种呢 也就是大家用的最多的叫做外部类的写法
这里呢 我们新建了一个外部类
ButtonHandler
来实现了我们的SelectionListener的接口
在SelectionListener里面
我们定义了
每个按钮在选择的时候呢 有两个方法必须要实现
一个叫wigetSelected
他表示 单击选择事件
在这里那 我们的第5行
在响应这个单击事件的时候
打开了一个确认对话框
显示一个Button Clicked信息
第八行的 widgetDefaultSelected 它表示按钮的双击选择事件的响应代码
在这里呢我们没有进行任何的实现
我们这个监听人一定要通过 addSelectionListener 方法
把他注册给我们事件源Button
为每个按钮创建一个文件类 就会产生大量的Java文件
那么有没有更好的做法呢
我们这里看到的是一个
内部类的写法
就是将刚才的ButtonHandler
写在了ButtonSelectionDemo2里面
构成一个内部类的写法
这种写法可以
避免大量Java文件的产生
但是同样它会产生一个问题
如果我有10个按钮 而且 每个按钮都做不同事情
那么
你会如何来实现呢
这时候你可能就会定义 ButtonHandler1 ButtonHandler2 ..ButtonHandler 到 10
这样的十个类
那么同样的 他会造成我们类的灾难
有没有更好的做法
那么这里给大家提供的一个叫做匿名类的写法
对比刚才的写法 我们可以看到这里的没有监听人的类的定义了
在我们第四行
直接new了一个接口的类型
并且通过第四行到第十三行来负责对
接口当中定义的两个方法的进行相应的解释
但是有些同学可能会问
在实际我们使用这段代码的时候我们只是对
单击选择事件进行了处理
而双击选择事件那 我们并没有做任何的响应
但是根据我们的接口语法 这个方法那必须要写在那里 这就会造成大量的冗余代码
有没有可能把这些不必要的接口方法
也给隐藏起来或者省略不写呢
那么我们的SWT当中 他采取了一个叫做适配器的做法
原来的监听接口 我们通过一个适配器
来进行一个默认的实现
用户的监听器 只要继承这个适配器
那么对相应的方法进行选择性的实现就可以了
在这个源代码当中我们看到SelectionAdapter是一个抽象类
他 对我们的SelectionListener进行了默认的实现
而每一个实现代码里面的就是一个空语句
那么利用这样一个规则
就有了采用适配器的做法
这里我们只对widgetSelected感兴趣
所以呢 覆盖了 这个widgetSelected 做法
这就是我们常见的SWT的
事件处理的几种写法
-1.1Java简介
--01Java简介
-1.2搭建Java开发环境
--Video
-1.3使用记事本编写Java程序
--Video
-1.4使用Eclipse开发Java程序
--Video
-1.5导入/导出Java项目
--Video
-1.6管理组织代码
--Video
-第1章初始Java--测试题
-2.1认识标识符
--Video
-2.2变量和变量类型
--Video
-2.3数据类型和类型转换
--Video
-2.4使用常量
--Video
-2.5使用注释
--Video
-2.6使用运算符进行算术运算
--Video
-第2章使用Java基本语法(1)--测试题
-2.7使用运算符进行逻辑处理
--Video
-2.8使用if进行流程控制
--Video
-2.9使用switch进行流程控制
-2.10使用循环
--Video
-2.11循环的跳出和继续
--Video
-2.12多重循环
--Video
-第2章使用Java基本语法(2)--测试题
-3.1认识类和对象
--Video
-3.2为类添加属性
--Video
-3.3为类添加方法
--Video
-3.4为类添加静态方法
--Video
-3.5递归方法
--递归方法
-3.6构造方法
--Video
-3.7重载方法
--Video
-第3章使用面向对象基础语法--测试题
-4.1使用继承语法
--Video
-4.2使用数组
--Video
-4.3使用数组类操作数组
--Video
-4.4使用抽象类
--Video
-4.5使用接口
--Video
-第4章使用面向对象高级语法--测试题
-5.1异常处理机制
--Video
-5.2捕获异常
--Video
-5.3创建自定义异常
--Video
-第5章捕获并处理异常--测试题
-6.1SWT图形界面
--Video
-6.2使用SWT布局管理-FillLayout
-6.3使用SWT布局管理-RowLayout
-6.4SWT中的事件模型
--Video
-6.5常见事件处理写法
--Video
-第6章使用SWT设计界面--测试题
-7.1微波炉模拟程序的界面制作
--Video
-7.2微波炉模拟程序的代码重构
--Video
-7.3微波炉模拟程序的事件监听
--Video
-7.4微波炉模拟程序的数字键盘
--Video
-7.6微波炉模拟程序CookTimer
--Video
-7.7微波炉模拟程序添加图像
--Video
-7.8微波炉模拟程序添加声音
--Video
-7.9微波炉模拟程序安装包制作
--Video