OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6030|回复: 4

第5章 UOL之事件驱动

[复制链接]

45

主题

115

帖子

1

精华

版主

Rank: 7Rank: 7Rank: 7

积分
679
金钱
679
注册时间
2013-9-23
在线时间
95 小时
发表于 2014-5-25 18:58:28 | 显示全部楼层 |阅读模式
所谓事件驱动,简单来说就是当你触发或点击某个按键的时候,程序会执行相关的函数。整个事件驱动的核心内容就是如何生成事件,并且如何处理事件。在UOL中,整个事件机制是基于操作系统的线程,通过不停的查询事件列表来决定是否处理事件。本章通过设计一些简单的GUI控件来介绍如何实现事件驱动这个机制。



首先我们来看一下button这个控件。如上图所示,在这个例子中每一个button都是一个独立的对象。每个button对象中都由一个方法叫做:
addButtionAction(Listener lis, int type)
这个方法用来把当前的button对象和相关的Listener添加到一个叫做ButtonActionListener的对象中。

其中ButtonActionListener是用来创建一个线程并查询button事件列表。而Listener模块则是这个事件处理的核心内容。如下是Listener的代码:
public module Listener
{
    public abstract void handleEvent(EventSource e);
}

任何一个类添加了Listener这个模块后,必须实现handleEvent这个方法。如果我们创建了一个类叫做TestButtonAction,当这个类添加了Listener之后,我们可以通过实现handleEvent这个方法来设计我们想要的button触发后的动作。

由于代码量比较大,所以这里就不贴代码了。测试代码和最新版本的UOL(1.0.2)开发包都在下面的帖子中:
http://www.openedv.com/posts/list/32384.htm

此次虚拟机做了一些相应修改。sd卡中的执行程序会直接加载到flash rom中运行,而不是在ram中。如果sd卡没有插入,虚拟机则直接启动上次加载的执行文件。

后续会推出更多了GUI空间,包括窗口都一系列的应用。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-5-26 00:42:37 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-5-26 01:07:16 | 显示全部楼层
期待编写更多的控件,不过用JAVA写界面真的比较痛苦(个人感觉),如果能够再开发一个类似C#的直接拖控件自动生成代码的软件就好了。
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

45

主题

115

帖子

1

精华

版主

Rank: 7Rank: 7Rank: 7

积分
679
金钱
679
注册时间
2013-9-23
在线时间
95 小时
 楼主| 发表于 2014-5-26 01:45:44 | 显示全部楼层
回复【3楼】xiaoyan:
---------------------------------
这个需要有IDE支持,目前我还是主要把库慢慢做起来。相信这个库应该比ucGUI更为精简有效。这个button控件实现只用了不到1kB的二进制文件。
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-5-26 21:35:51 | 显示全部楼层
回复【4楼】edmund:
---------------------------------
能够比得上ucgui就很牛叉了,等你资料再多一点,我再来,仔细研究研究,哈哈。
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 13:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表