通过前面这些文章,对SWT程序执行的流程作了一些解释。
分析SWT的源码,实际上并不困难,只要了解了windows 程序执行的基本步骤。前面对程序的分析,可以分为2部分,一是寻找RegisterClass,CreateWindowEx这些windows api,寻找窗口创建的一系列流程,分析的是如何实现。
二是分析SWT对消息处理的封装,因为我们是在写Java程序,Java是OO的,我们不会再去写窗口过程函数了,分析的是“架构”,“模式”。
总结一下SWT程序的流程:
1. Display display = new Display();
没有创建窗口,作了一些初始化、准备操作。一个程序往往只有一个Display对象,display对象持有很多程序其他对象的引用。
2. Shell shell = new Shell(display);
创建主窗口。
3. 类似Button b1 = new Button(shell,SWT.NONE); Text text = new Text(shell,SWT.NONE);
创建控件,控件其实也是窗口。
4. 控件.addXXXListener();
监听控件的具体事件,实际上往控件上绑定了事件类型和监听器。
5. shell.open();
显示窗口。
6.
while (!shell.isDisposed()) { // 如果主窗体没有关闭则一直循环
if (!display.readAndDispatch()) { // 如果display不忙
display.sleep(); // 休眠
}
}
display.dispose(); // 销毁display
进入消息循环,因为windows程序是“基于消息,事件驱动”的,所以程序时异步运行的,当发生了一个事件,
就会进入Display内部的窗口过程函数。Display中接收的是windows消息,将windows消息转换为SWT自己的事件,再交由具体的控件做处理。
就这样一直循环到程序退出。
至于SWT涉及到的一些模式。我如果我看出来,也会写出来,目前还没看出来什么。
分享到:
相关推荐
“插件开发篇”介绍了Eclipse插件开发的各个步骤,并给出了一个基于数据库开发和面向对象分析设计的完整插件实例;“Web开发篇”以Tomcat+Lomboz+Hibernate为开发环境,详述了其下载、安装、配置和开发的全过程。 ...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
内附有一个高校收费分析系统实例源码,用hibernate 与rcp结合使用,对初学者来说很实用的,特别是想了解如何在桌面程序使用jface,swt并与hibernate结合处理数据库使用方面很到位。
Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来...
笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机...
案例7-2 借助SWT/JFace实现录入信息有效性检查 253 7.4 SWT/JFace中的常用组件 258 案例7-3 借助SWT/JFace中实现文件阅读器 259 7.5 SWT/JFace中的线程 264 案例7-4 在SWT/JFace中实现多线程效果 265 第8...
用到了CSplitterWnd::DeleteView()和CSplitterWnd::CreateView()等成员函数(35KB)<END><br>44,swt.zip DOS下仿WIN95界面及图标编辑器源程序(498k C&ASM 作者:添翼虎)(499KB)<END><br>45,menutest.zip 定制WIN...
3.3.2 经验之谈-常见错误的分析与处理40 3.3.3 Java标识符命名规则41 3.3.4 关键字42 3.3.5 常量42 3.4 运算符43 3.4.1 算术运算符43 3.4.2 赋值操作符45 3.4.3 关系操作符47 3.4.4 逻辑操作符48 3.4.5 位操作符49 ...
我们将反编译之后的源码和 JAR 包导入项目,在通过搜索源码和修复报错(会有一大波报错等待你修复,可以多种反编译工具对比结果来修改)等方式尝试将源码跑起来。来。最终我们终于成功跑起来了反编译之后的代码。 ...
1.5 SWT 界面开发实例... 13 1.5.1 使用Shell 创建窗口... 13 1.5.2 简单的用户密码验证器... 16 1.5.3 文件选择器... 19 第 2 章 在 Eclipse 中进行重构... 22 2.1 重命名实例... 22 2.2 移动实例... ...