当前课程知识点:“做中学”Java程序设计 >  第6章使用SWT设计界面 >  6.5常见事件处理写法 >  Video

返回《“做中学”Java程序设计》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《“做中学”Java程序设计》慕课在线视频列表

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的

事件处理的几种写法

“做中学”Java程序设计课程列表:

第1章初始Java

-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章使用Java基本语法(1)

-2.1认识标识符

--Video

-2.2变量和变量类型

--Video

-2.3数据类型和类型转换

--Video

-2.4使用常量

--Video

-2.5使用注释

--Video

-2.6使用运算符进行算术运算

--Video

-第2章使用Java基本语法(1)--测试题

第2章使用Java基本语法(2)

-2.7使用运算符进行逻辑处理

--Video

-2.8使用if进行流程控制

--Video

-2.9使用switch进行流程控制

--使用switch进行流程控制

-2.10使用循环

--Video

-2.11循环的跳出和继续

--Video

-2.12多重循环

--Video

-第2章使用Java基本语法(2)--测试题

第3章使用面向对象基础语法

-3.1认识类和对象

--Video

-3.2为类添加属性

--Video

-3.3为类添加方法

--Video

-3.4为类添加静态方法

--Video

-3.5递归方法

--递归方法

-3.6构造方法

--Video

-3.7重载方法

--Video

-第3章使用面向对象基础语法--测试题

第4章使用面向对象高级语法

-4.1使用继承语法

--Video

-4.2使用数组

--Video

-4.3使用数组类操作数组

--Video

-4.4使用抽象类

--Video

-4.5使用接口

--Video

-第4章使用面向对象高级语法--测试题

第5章捕获并处理异常

-5.1异常处理机制

--Video

-5.2捕获异常

--Video

-5.3创建自定义异常

--Video

-第5章捕获并处理异常--测试题

第6章使用SWT设计界面

-6.1SWT图形界面

--Video

-6.2使用SWT布局管理-FillLayout

--使用SWT布局管理-FillLayout

-6.3使用SWT布局管理-RowLayout

--使用SWT布局管理-RowLayout

-6.4SWT中的事件模型

--Video

-6.5常见事件处理写法

--Video

-第6章使用SWT设计界面--测试题

第7章微波炉模拟程序

-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

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。