第1章 初识J2ME 1
1.1 Java平台和J2ME技术概况 1
1.1.1 Java语言的发展和现状 1
1.1.2 J2ME概述 3
1.1.3 CLDC和MIDP 5
1.2 支持J2ME的手机设备及常用开发工具 7
1.2.1 支持J2ME的手机设备 7
1.2.2 支持J2ME的开发工具 14
1.3 本章小结 16
第2章 Java编程基础 17
2.1 面向对象编程 17
2.1.1 对象和类 17
2.1.2 属性和行为 18
2.1.3 类的组织和类行为 19
2.2 Java编程知识 21
2.2.1 语句和表达式 21
2.2.2 变量和数据类型 21
2.2.3 Java程序的注释 23
2.2.4 Java语言中的字面量 24
2.2.5 表达式和运算符 25
2.2.6 字符串运算 28
2.2.7 数组 28
2.2.8 多维数组 29
2.2.9 if条件语句 30
2.2.10 switch条件语句 30
2.2.11 while和do循环 31
2.2.12 for循环 32
2.2.13 循环退出语句 32
2.3 Java语言中对象的处理 33
2.3.1 新对象的创建 33
2.3.2 类变量和实例变量的访问和设置 34
2.3.3 类方法的调用 35
2.4 Java中的强制类型转换 35
2.4.1 原始类型的强制转换 35
2.4.2 对象之间的强制转换 36
2.4.3 原始数据类型和对象之间的强制转换 36
2.5 本章小结 37
第3章 第一个MIDlet程序 38
3.1 “你好,J2ME”实例 38
3.2 J2ME WTK 39
3.2.1 WTK工具包的安装 39
3.2.2 启动WTK工具包 42
3.2.3 创建工程 43
3.2.4 书写源代码和编译建立工程 45
3.2.5 在模拟器中试运行 46
3.3 工程分析 47
3.4 程序打包 48
3.5 本章小结 49
第4章 连接受限设备配置表 50
4.1 CLDC的由来 50
4.1.1 小而灵便的Java虚拟机 50
4.1.2 运行时库 51
4.2 CLDC概览 51
4.2.1 设备要求 51
4.2.2 语言要求 51
4.2.3 KVM虚拟机要求 52
4.2.4 CLDC中使用的J2SE类 53
4.2.5 系统属性 56
4.3 CLDC独有的类 56
4.4 本章小结 61
第5章 移动信息设备简表 62
5.1 软件需求 62
5.2 MIDlets和MIDlet Suites 63
5.3 用户接口 64
5.4 数据持久性 64
5.5 无线互连 65
5.6 其他的J2SE类 65
5.7 MIDlet基础 65
5.7.1 MIDlet的主类 66
5.7.2 激活MIDlet 67
5.7.3 MIDlet Suites详解 67
5.7.4 MIDlet生存周期 69
5.8 本章小结 70
第6章 用户接口低层API 71
6.1 MIDP用户界面类库 72
6.2 显示 73
6.2.1 Displayables 73
6.2.2 Display类 73
6.2.3 设置当前的Displayable 74
6.3 命令 75
6.3.1 命令的定义 75
6.3.2 命令的创建 76
6.3.3 命令对象与显示对象的关联 77
6.3.4 对Command触发事件的响应 77
6.4 图像 78
6.5 Canvas类 79
6.5.1 创建Canvas 79
6.5.2 Canvas中的按键事件 80
6.5.3 Canvas中的指针事件 81
6.5.4 可视性通知 82
6.5.5 强制重画 82
6.5.6 事件序列化 82
6.5.7 绘制图形和文本 82
6.5.8 获得Canvas的大小参数 83
6.6 本章小结 85
第7章 MIDP中的图形和图像设计 86
7.1 MIDP中的图形绘制 86
7.1.1 Repaint机制 86
7.1.2 图形绘制 86
7.1.3 坐标 87
7.1.4 图形剪裁和坐标变换 87
7.1.5 颜色 87
7.1.6 字体 88
7.2 Graphics类相关的图形绘制 88
7.2.1 绘制前的初始化工作 88
7.2.2 线条的绘制 89
7.2.3 弧形的绘制和填充 89
7.2.4 绘制和填充矩形和圆角矩形 90
7.2.5 文本和图像的绘制 91
7.3 MIDP对图像的支持 92
7.4 PNG图像格式简介 92
7.4.1 PNG的存储 92
7.4.2 PNG的文件格式 93
7.5 MIDP对PNG的支持 93
7.6 显示一幅有趣的图片 94
7.6.1 建立工程文件 94
7.6.2 编辑要显示的图像 94
7.6.3 编写MIDlet代码 97
7.6.4 运行新建工程 98
7.7 Image和ImageItem类的常用方法 99
7.7.1 Image类 99
7.7.2 ImageItem类 100
7.8 使用MIDP对图像的支持实现动画效果 101
7.9 本章小结 107
第8章 高层用户接口API 108
8.1 屏幕 108
8.1.1 屏幕类 108
8.1.2 屏幕的标题 109
8.1.3 广告条 109
8.2 提醒 110
8.2.1 Alert类 110
8.2.2 Alert的类型 111
8.2.3 Alert类的超时 112
8.2.4 Alert对象的显示 113
8.2.5 Alert对象实例 113
8.3 列表与文本框 115
8.3.1 列表 116
8.3.2 文本框 118
8.4 表单 119
8.4.1 表单和表单的子项 119
8.4.2 子项的状态事件 120
8.4.3 选项组子项 121
8.4.4 日期域子项 121
8.4.5 滑杆子项 123
8.4.6 图像子项 123
8.4.7 字符串子项 124
8.4.8 文本域子项 124
8.5 本章小结 125
第9章 MIDP记录管理系统 126
9.1 记录和记录集 126
9.1.1 数据的可持续性 127
9.1.2 记录 127
9.1.3 记录集 127
9.1.4 记录集使用中的体积限制 128
9.2 打开和关闭记录集 128
9.2.1 记录集类 128
9.2.2 打开记录集 128
9.2.3 记录集的关闭 130
9.2.4 记录集的相关信息 130
9.2.5 列出和删除记录集 130
9.3 记录集中数据的读写 131
9.3.1 添加新记录 131
9.3.2 记录的读取 131
9.3.3 记录中数据的写入 132
9.3.4 记录的删除 132
9.4 记录集数据的格式 133
9.4.1 将其他格式的数据转换为二进制 133
9.4.2 从二进制形式还原 133
9.4.3 几个关于数据转换的问题 134
9.5 面向记录的几个高级操作 135
9.5.1 记录过滤接口 135
9.5.2 记录比较接口 135
9.5.3 记录侦听接口 136
9.5.4 记录枚举接口 137
9.6 完整的RMS编程实例 138
9.7 本章小结 141
第10章 MIDP的网络编程 142
10.1 HTTP基础 143
10.1.1 网络服务器和网络客户端 143
10.1.2 HTTP工作原理 144
10.1.3 连接重用 145
10.1.4 跨请求的状态保持 146
10.2 创建HTTP连接 146
10.2.1 HttpConnection接口 147
10.2.2 获取一个HttpConnection对象 147
10.2.3 GET和HEAD请求 148
10.2.4 POST方法 149
10.3 回复处理 149
10.4 HTTP连接的状态代码 151
10.5 MIDP应用与Servlets交互 151
10.6 本章小结 151
第11章 使用网络连接请求获取图像数据 152
11.1 显示地图的Canvas 152
11.2 MIDlet主程序 154
11.3 编译 159
11.4 本章小结 160
第12章 MIDP中的多线程 161
12.1 线程 161
12.1.1 多线程 162
12.1.2 Java中的多线程 162
12.2 线程类 163
12.2.1 MIDP中的Thread类的方法 163
12.2.2 Runnable接口 164
12.3 实例代码 165
12.4 本章小结 173
第13章 MIDlet程序中定时器的使用 174
13.1 Timer类 174
13.2 Timer Task类 175
13.3 java.util.Date类 176
13.4 只运行一次的定时器 177
13.5 可重复运行的定时器 178
13.6 使用Timer控制的Gauge的实例 180
13.7 使用时钟屏幕保护的实例 183
13.8 本章小结 186
第14章 MIDlet的高级主题 187
14.1 无线网络与设备安全 187
14.1.1 无线网络更加不安全 187
14.1.2 设备丢失或被窃 188
14.2 XML 188
14.2.1 XML技术应用的必要性 188
14.2.2 XML解析器 188
14.3 代码优化 189
14.3.1 最小化类的数量 189
14.3.2 使用内置类 189
14.3.3 对象数目最少化 190
14.3.4 无用信息收集器的辅助工作 190
14.3.5 使用混淆器 190
14.4 本章小结 191
附录A J2ME的网络安全措施 192
A1 常用有线网络的安全措施——SSL 192
A1.1 SSL简介 192
A1.2 公共钥匙安全体系简介 193
A1.3 HTTPS和SSL 194
A2 Sun无线应用的网络安全措施——KSSL 195
A2.1 SSL特性 195
A2.2 SSL实现要点 195
A2.3 使用KSSL编程 195
A3 JCE-Java加密扩展 196
A3.1 安全供应者 196
A3.2 Bouncy Castle J2ME加密包 196
A3.3 JCE实现 197
A3.4 Bouncy Castle J2ME加密包进行DES加密传输 198
A4 小结 202